{ "cells": [ { "cell_type": "markdown", "id": "20382f65", "metadata": {}, "source": [ "# Comparing *apo* and *holo* CDR loop clustering" ] }, { "cell_type": "markdown", "id": "6b6b6403", "metadata": {}, "source": [ "## Introduction\n", "\n", "In this notebook, we set out to assess whether the CDR loops of TCRs stay in there canonical forms between *apo* and *holo* states or if they disrupt them." ] }, { "cell_type": "code", "execution_count": 1, "id": "a155933e", "metadata": {}, "outputs": [], "source": [ "import itertools\n", "\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "id": "23992f3b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameclusterchain_typecdrsequencecluster_type
07zt2_DE12alpha_chain1TSGFNGpseudo
17zt3_DE12alpha_chain1TSGFNGpseudo
27zt4_DE12alpha_chain1TSGFNGpseudo
37zt5_DE12alpha_chain1TSGFNGpseudo
47zt7_DE12alpha_chain1TSGFNGpseudo
.....................
48076miv_CD22beta_chain3ASGDEGYTQYcanonical
48083rtq_CD22beta_chain3ASGDEGYTQYcanonical
48093dxa_NOnoisebeta_chain3ASRYRDDSYNEQFNaN
48101d9k_ABnoisebeta_chain3ASGGQGRAEQFNaN
48114gg6_GHnoisebeta_chain3ASSVAVSAGTYEQYNaN
\n", "

4812 rows × 6 columns

\n", "
" ], "text/plain": [ " name cluster chain_type cdr sequence cluster_type\n", "0 7zt2_DE 12 alpha_chain 1 TSGFNG pseudo\n", "1 7zt3_DE 12 alpha_chain 1 TSGFNG pseudo\n", "2 7zt4_DE 12 alpha_chain 1 TSGFNG pseudo\n", "3 7zt5_DE 12 alpha_chain 1 TSGFNG pseudo\n", "4 7zt7_DE 12 alpha_chain 1 TSGFNG pseudo\n", "... ... ... ... ... ... ...\n", "4807 6miv_CD 22 beta_chain 3 ASGDEGYTQY canonical\n", "4808 3rtq_CD 22 beta_chain 3 ASGDEGYTQY canonical\n", "4809 3dxa_NO noise beta_chain 3 ASRYRDDSYNEQF NaN\n", "4810 1d9k_AB noise beta_chain 3 ASGGQGRAEQF NaN\n", "4811 4gg6_GH noise beta_chain 3 ASSVAVSAGTYEQY NaN\n", "\n", "[4812 rows x 6 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('../data/processed/stcrdab_clusters.csv')\n", "df" ] }, { "cell_type": "markdown", "id": "b2243a5a", "metadata": {}, "source": [ "## Compare *apo* and *holo* forms of loops" ] }, { "cell_type": "code", "execution_count": 3, "id": "05a288aa", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
file_namepdb_idstructure_typestatealpha_chainbeta_chainantigen_chainmhc_chain1mhc_chain2cdr_sequences_collatedpeptide_sequencemhc_slug
01ao7_D-E-C-A-B_tcr_pmhc.pdb1ao7tcr_pmhcholoDECABDRGSQS-IYSNGD-AVTTDSWGKLQ-MNHEY-SVGAGI-ASRPGLA...LLFGYPVYVhla_a_02_01
11b0g_C-A-B_pmhc.pdb1b0gpmhcapoNaNNaNCABNaNALWGFFPVLhla_a_02_01
21b0g_F-D-E_pmhc.pdb1b0gpmhcapoNaNNaNFDENaNALWGFFPVLhla_a_02_01
31bd2_D-E-C-A-B_tcr_pmhc.pdb1bd2tcr_pmhcholoDECABNSMFDY-ISSIKDK-AAMEGAQKLV-MNHEY-SVGAGI-ASSYPGG...LLFGYPVYVhla_a_02_01
41bii_P-A-B_pmhc.pdb1biipmhcapoNaNNaNPABNaNRGPGRAFVTIh2_dd
.......................................
3867rtd_C-A-B_pmhc.pdb7rtdpmhcapoNaNNaNCABNaNYLQPRTFLLhla_a_02_01
3877rtr_D-E-C-A-B_tcr_pmhc.pdb7rtrtcr_pmhcholoDECABDRGSQS-IYSNGD-AVNRDDKII-SEHNR-FQNEAQ-ASSPDIEQYYLQPRTFLLhla_a_02_01
3888gvb_A-B-P-H-L_tcr_pmhc.pdb8gvbtcr_pmhcholoABPHLYGATPY-YFSGDTLV-AVGFTGGGNKLT-SEHNR-FQNEAQ-ASSD...RYPLTFGWhla_a_24_02
3898gvg_A-B-P-H-L_tcr_pmhc.pdb8gvgtcr_pmhcholoABPHLYGATPY-YFSGDTLV-AVGFTGGGNKLT-SEHNR-FQNEAQ-ASSD...RFPLTFGWhla_a_24_02
3908gvi_A-B-P-H-L_tcr_pmhc.pdb8gvitcr_pmhcholoABPHLYGATPY-YFSGDTLV-AVVFTGGGNKLT-SEHNR-FQNEAQ-ASSL...RYPLTFGWhla_a_24_02
\n", "

391 rows × 12 columns

\n", "
" ], "text/plain": [ " file_name pdb_id structure_type state alpha_chain \\\n", "0 1ao7_D-E-C-A-B_tcr_pmhc.pdb 1ao7 tcr_pmhc holo D \n", "1 1b0g_C-A-B_pmhc.pdb 1b0g pmhc apo NaN \n", "2 1b0g_F-D-E_pmhc.pdb 1b0g pmhc apo NaN \n", "3 1bd2_D-E-C-A-B_tcr_pmhc.pdb 1bd2 tcr_pmhc holo D \n", "4 1bii_P-A-B_pmhc.pdb 1bii pmhc apo NaN \n", ".. ... ... ... ... ... \n", "386 7rtd_C-A-B_pmhc.pdb 7rtd pmhc apo NaN \n", "387 7rtr_D-E-C-A-B_tcr_pmhc.pdb 7rtr tcr_pmhc holo D \n", "388 8gvb_A-B-P-H-L_tcr_pmhc.pdb 8gvb tcr_pmhc holo A \n", "389 8gvg_A-B-P-H-L_tcr_pmhc.pdb 8gvg tcr_pmhc holo A \n", "390 8gvi_A-B-P-H-L_tcr_pmhc.pdb 8gvi tcr_pmhc holo A \n", "\n", " beta_chain antigen_chain mhc_chain1 mhc_chain2 \\\n", "0 E C A B \n", "1 NaN C A B \n", "2 NaN F D E \n", "3 E C A B \n", "4 NaN P A B \n", ".. ... ... ... ... \n", "386 NaN C A B \n", "387 E C A B \n", "388 B P H L \n", "389 B P H L \n", "390 B P H L \n", "\n", " cdr_sequences_collated peptide_sequence \\\n", "0 DRGSQS-IYSNGD-AVTTDSWGKLQ-MNHEY-SVGAGI-ASRPGLA... LLFGYPVYV \n", "1 NaN ALWGFFPVL \n", "2 NaN ALWGFFPVL \n", "3 NSMFDY-ISSIKDK-AAMEGAQKLV-MNHEY-SVGAGI-ASSYPGG... LLFGYPVYV \n", "4 NaN RGPGRAFVTI \n", ".. ... ... \n", "386 NaN YLQPRTFLL \n", "387 DRGSQS-IYSNGD-AVNRDDKII-SEHNR-FQNEAQ-ASSPDIEQY YLQPRTFLL \n", "388 YGATPY-YFSGDTLV-AVGFTGGGNKLT-SEHNR-FQNEAQ-ASSD... RYPLTFGW \n", "389 YGATPY-YFSGDTLV-AVGFTGGGNKLT-SEHNR-FQNEAQ-ASSD... RFPLTFGW \n", "390 YGATPY-YFSGDTLV-AVVFTGGGNKLT-SEHNR-FQNEAQ-ASSL... RYPLTFGW \n", "\n", " mhc_slug \n", "0 hla_a_02_01 \n", "1 hla_a_02_01 \n", "2 hla_a_02_01 \n", "3 hla_a_02_01 \n", "4 h2_dd \n", ".. ... \n", "386 hla_a_02_01 \n", "387 hla_a_02_01 \n", "388 hla_a_24_02 \n", "389 hla_a_24_02 \n", "390 hla_a_24_02 \n", "\n", "[391 rows x 12 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apo_holo_summary_df = pd.read_csv('../data/processed/apo-holo-tcr-pmhc-class-I/apo_holo_summary.csv')\n", "apo_holo_summary_df" ] }, { "cell_type": "code", "execution_count": 4, "id": "73bc8019", "metadata": {}, "outputs": [], "source": [ "df[['pdb_id', 'chains']] = df['name'].str.split('_').apply(pd.Series)\n", "df[['alpha_chain', 'beta_chain']] = df['chains'].apply(list).apply(pd.Series)" ] }, { "cell_type": "code", "execution_count": 5, "id": "da2a0946", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameclusterchain_typecdrsequencecluster_typepdb_idchainsalpha_chainbeta_chainfile_namestructure_typestateantigen_chainmhc_chain1mhc_chain2cdr_sequences_collatedpeptide_sequencemhc_slug
02ak4_DE4alpha_chain1TRDTTYYcanonical2ak4DEDE2ak4_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABTRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP...LPEPLPQGQLTAYhla_b_35_08
12ak4_DE6beta_chain1MNHNScanonical2ak4DEDE2ak4_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABTRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP...LPEPLPQGQLTAYhla_b_35_08
22ak4_DE6alpha_chain2RNSFDEQNpseudo2ak4DEDE2ak4_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABTRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP...LPEPLPQGQLTAYhla_b_35_08
32ak4_DEnoisebeta_chain2SASEGTNaN2ak4DEDE2ak4_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABTRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP...LPEPLPQGQLTAYhla_b_35_08
42ak4_DE12alpha_chain3ALSGFYNTDKLIpseudo2ak4DEDE2ak4_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABTRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP...LPEPLPQGQLTAYhla_b_35_08
............................................................
11054jff_DE0beta_chain1GTSNPNpseudo4jffDEDE4jff_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABFLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM...ELAGIGILTVhla_a_02_01
11064jff_DE17alpha_chain2TYREGDcanonical4jffDEDE4jff_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABFLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM...ELAGIGILTVhla_a_02_01
11074jff_DEnoisebeta_chain2WGPFGNaN4jffDEDE4jff_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABFLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM...ELAGIGILTVhla_a_02_01
11084jff_DE26alpha_chain3AVNDGGRLTcanonical4jffDEDE4jff_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABFLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM...ELAGIGILTVhla_a_02_01
11094jff_DEnoisebeta_chain3AWSETGLGMGGWQNaN4jffDEDE4jff_D-E-C-A-B_tcr_pmhc.pdbtcr_pmhcholoCABFLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM...ELAGIGILTVhla_a_02_01
\n", "

1110 rows × 19 columns

\n", "
" ], "text/plain": [ " name cluster chain_type cdr sequence cluster_type pdb_id \\\n", "0 2ak4_DE 4 alpha_chain 1 TRDTTYY canonical 2ak4 \n", "1 2ak4_DE 6 beta_chain 1 MNHNS canonical 2ak4 \n", "2 2ak4_DE 6 alpha_chain 2 RNSFDEQN pseudo 2ak4 \n", "3 2ak4_DE noise beta_chain 2 SASEGT NaN 2ak4 \n", "4 2ak4_DE 12 alpha_chain 3 ALSGFYNTDKLI pseudo 2ak4 \n", "... ... ... ... ... ... ... ... \n", "1105 4jff_DE 0 beta_chain 1 GTSNPN pseudo 4jff \n", "1106 4jff_DE 17 alpha_chain 2 TYREGD canonical 4jff \n", "1107 4jff_DE noise beta_chain 2 WGPFG NaN 4jff \n", "1108 4jff_DE 26 alpha_chain 3 AVNDGGRLT canonical 4jff \n", "1109 4jff_DE noise beta_chain 3 AWSETGLGMGGWQ NaN 4jff \n", "\n", " chains alpha_chain beta_chain file_name \\\n", "0 DE D E 2ak4_D-E-C-A-B_tcr_pmhc.pdb \n", "1 DE D E 2ak4_D-E-C-A-B_tcr_pmhc.pdb \n", "2 DE D E 2ak4_D-E-C-A-B_tcr_pmhc.pdb \n", "3 DE D E 2ak4_D-E-C-A-B_tcr_pmhc.pdb \n", "4 DE D E 2ak4_D-E-C-A-B_tcr_pmhc.pdb \n", "... ... ... ... ... \n", "1105 DE D E 4jff_D-E-C-A-B_tcr_pmhc.pdb \n", "1106 DE D E 4jff_D-E-C-A-B_tcr_pmhc.pdb \n", "1107 DE D E 4jff_D-E-C-A-B_tcr_pmhc.pdb \n", "1108 DE D E 4jff_D-E-C-A-B_tcr_pmhc.pdb \n", "1109 DE D E 4jff_D-E-C-A-B_tcr_pmhc.pdb \n", "\n", " structure_type state antigen_chain mhc_chain1 mhc_chain2 \\\n", "0 tcr_pmhc holo C A B \n", "1 tcr_pmhc holo C A B \n", "2 tcr_pmhc holo C A B \n", "3 tcr_pmhc holo C A B \n", "4 tcr_pmhc holo C A B \n", "... ... ... ... ... ... \n", "1105 tcr_pmhc holo C A B \n", "1106 tcr_pmhc holo C A B \n", "1107 tcr_pmhc holo C A B \n", "1108 tcr_pmhc holo C A B \n", "1109 tcr_pmhc holo C A B \n", "\n", " cdr_sequences_collated peptide_sequence \\\n", "0 TRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP... LPEPLPQGQLTAY \n", "1 TRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP... LPEPLPQGQLTAY \n", "2 TRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP... LPEPLPQGQLTAY \n", "3 TRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP... LPEPLPQGQLTAY \n", "4 TRDTTYY-RNSFDEQN-ALSGFYNTDKLI-MNHNS-SASEGT-ASP... LPEPLPQGQLTAY \n", "... ... ... \n", "1105 FLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM... ELAGIGILTV \n", "1106 FLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM... ELAGIGILTV \n", "1107 FLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM... ELAGIGILTV \n", "1108 FLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM... ELAGIGILTV \n", "1109 FLGSQS-TYREGD-AVNDGGRLT-GTSNPN-WGPFG-AWSETGLGM... ELAGIGILTV \n", "\n", " mhc_slug \n", "0 hla_b_35_08 \n", "1 hla_b_35_08 \n", "2 hla_b_35_08 \n", "3 hla_b_35_08 \n", "4 hla_b_35_08 \n", "... ... \n", "1105 hla_a_02_01 \n", "1106 hla_a_02_01 \n", "1107 hla_a_02_01 \n", "1108 hla_a_02_01 \n", "1109 hla_a_02_01 \n", "\n", "[1110 rows x 19 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apo_holo_clusters = df.merge(apo_holo_summary_df,\n", " how='inner',\n", " on=['pdb_id', 'alpha_chain', 'beta_chain'])\n", "apo_holo_clusters" ] }, { "cell_type": "code", "execution_count": 6, "id": "4c42f850", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cdr_sequences_collatedchain_typecdrapo_clustersholo_clusters
0ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1[13][noise]
1ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain2[noise][noise]
2ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain3[noise][noise]
3ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...beta_chain1[4][4]
4ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...beta_chain2[2][2]
..................
511YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...alpha_chain2[noise][noise]
512YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...alpha_chain3[noise][2]
513YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain1[4][4]
514YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain2[2][2]
515YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3[noise][noise]
\n", "

516 rows × 5 columns

\n", "
" ], "text/plain": [ " cdr_sequences_collated chain_type cdr \\\n", "0 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "1 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 2 \n", "2 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 3 \n", "3 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... beta_chain 1 \n", "4 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... beta_chain 2 \n", ".. ... ... ... \n", "511 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... alpha_chain 2 \n", "512 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... alpha_chain 3 \n", "513 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 1 \n", "514 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 2 \n", "515 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "\n", " apo_clusters holo_clusters \n", "0 [13] [noise] \n", "1 [noise] [noise] \n", "2 [noise] [noise] \n", "3 [4] [4] \n", "4 [2] [2] \n", ".. ... ... \n", "511 [noise] [noise] \n", "512 [noise] [2] \n", "513 [4] [4] \n", "514 [2] [2] \n", "515 [noise] [noise] \n", "\n", "[516 rows x 5 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def collate_clusters(group):\n", " apo_clusters = sorted(group.query(\"state == 'apo'\")['cluster'].tolist())\n", " holo_clusters = sorted(group.query(\"state == 'holo'\")['cluster'].tolist())\n", "\n", " return pd.Series({'apo_clusters': apo_clusters, 'holo_clusters': holo_clusters})\n", "\n", "apo_holo_clusters_agg = apo_holo_clusters.groupby(['cdr_sequences_collated',\n", " 'chain_type',\n", " 'cdr']).apply(collate_clusters).reset_index()\n", "apo_holo_clusters_agg" ] }, { "cell_type": "code", "execution_count": 7, "id": "e283ecaa", "metadata": {}, "outputs": [], "source": [ "cluster_types = (df[['chain_type', 'cdr', 'cluster', 'cluster_type']].drop_duplicates()\n", " .set_index(['chain_type', 'cdr', 'cluster'])\n", " ['cluster_type'])" ] }, { "cell_type": "code", "execution_count": 8, "id": "567c6954", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cdr_sequences_collatedchain_typecdrtypescount
0ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical Cluster Same0.0
1ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical Cluster Shift0.0
2ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical Cluster to Noise1.0
3ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical to Pseudo0.0
4ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Noise0.0
..................
5671YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Noise to Pseudo Cluster0.0
5672YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo Cluster Same0.0
5673YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo Cluster Shift0.0
5674YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo Cluster to Noise0.0
5675YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo to Canonical0.0
\n", "

5676 rows × 5 columns

\n", "
" ], "text/plain": [ " cdr_sequences_collated chain_type cdr \\\n", "0 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "1 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "2 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "3 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "4 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "... ... ... ... \n", "5671 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5672 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5673 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5674 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5675 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "\n", " types count \n", "0 Canonical Cluster Same 0.0 \n", "1 Canonical Cluster Shift 0.0 \n", "2 Canonical Cluster to Noise 1.0 \n", "3 Canonical to Pseudo 0.0 \n", "4 Noise 0.0 \n", "... ... ... \n", "5671 Noise to Pseudo Cluster 0.0 \n", "5672 Pseudo Cluster Same 0.0 \n", "5673 Pseudo Cluster Shift 0.0 \n", "5674 Pseudo Cluster to Noise 0.0 \n", "5675 Pseudo to Canonical 0.0 \n", "\n", "[5676 rows x 5 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def classify_movement(chain_type: str,\n", " cdr: str,\n", " apo_clusters: list[str],\n", " holo_clusters: list[str],\n", " cluster_types: pd.Series) -> pd.Series:\n", " types = {\n", " 'Noise': 0,\n", " 'Noise to Canonical Cluster': 0,\n", " 'Noise to Pseudo Cluster': 0,\n", " 'Canonical Cluster to Noise': 0,\n", " 'Pseudo Cluster to Noise': 0,\n", " 'Canonical Cluster Shift': 0,\n", " 'Pseudo Cluster Shift': 0,\n", " 'Canonical to Pseudo': 0,\n", " 'Pseudo to Canonical': 0,\n", " 'Canonical Cluster Same': 0,\n", " 'Pseudo Cluster Same': 0,\n", " }\n", "\n", " for apo_clust, holo_clust in itertools.product(apo_clusters, holo_clusters):\n", " if apo_clust == 'noise' and holo_clust == 'noise':\n", " types['Noise'] += 1\n", "\n", " elif apo_clust == 'noise' and holo_clust != 'noise':\n", " if cluster_types.loc[chain_type, cdr, holo_clust] == 'canonical':\n", " types['Noise to Canonical Cluster'] += 1\n", "\n", " else:\n", " types['Noise to Pseudo Cluster'] += 1\n", "\n", " elif apo_clust != 'noise' and holo_clust == 'noise':\n", " if cluster_types.loc[chain_type, cdr, apo_clust] == 'canonical':\n", " types['Canonical Cluster to Noise'] += 1\n", "\n", " else:\n", " types['Pseudo Cluster to Noise'] += 1\n", "\n", " elif apo_clust != holo_clust:\n", " if (cluster_types.loc[chain_type, cdr, apo_clust]\n", " == cluster_types.loc[chain_type, cdr, holo_clust]\n", " == 'canonical'):\n", " types['Canonical Cluster Shift'] += 1\n", "\n", " elif (cluster_types.loc[chain_type, cdr, apo_clust] == 'canonical'\n", " and cluster_types.loc[chain_type, cdr, holo_clust] == 'pseudo'):\n", " types['Canonical to Pseudo'] += 1\n", "\n", " else:\n", " types['Pseudo to Canonical'] += 1\n", "\n", " elif apo_clust == holo_clust:\n", " if cluster_types.loc[chain_type, cdr, apo_clust] == 'canonical':\n", " types['Canonical Cluster Same'] += 1\n", "\n", " else:\n", " types['Pseudo Cluster Same'] += 1\n", "\n", " return pd.Series(types)\n", "\n", "\n", "apo_holo_clusters_agg = apo_holo_clusters_agg.join(apo_holo_clusters_agg.apply(\n", " lambda row: classify_movement(row.chain_type, row.cdr, row.apo_clusters, row.holo_clusters, cluster_types), axis=1\n", "))\n", "\n", "# Wide to long\n", "apo_holo_clusters_agg = apo_holo_clusters_agg.melt(id_vars=['cdr_sequences_collated', 'chain_type', 'cdr'],\n", " value_vars=['Noise',\n", " 'Noise to Canonical Cluster',\n", " 'Noise to Pseudo Cluster',\n", " 'Canonical Cluster to Noise',\n", " 'Pseudo Cluster to Noise',\n", " 'Canonical Cluster Shift',\n", " 'Pseudo Cluster Shift',\n", " 'Canonical to Pseudo',\n", " 'Pseudo to Canonical',\n", " 'Canonical Cluster Same',\n", " 'Pseudo Cluster Same'],\n", " var_name='types', value_name='count')\n", "\n", "# Normalize for differeing group sizes\n", "apo_holo_clusters_agg = apo_holo_clusters_agg.groupby(\n", " ['cdr_sequences_collated', 'chain_type', 'cdr', 'types'],\n", ")['count'].median().reset_index()\n", "apo_holo_clusters_agg" ] }, { "cell_type": "code", "execution_count": 9, "id": "59eb90ca", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cdr_sequences_collatedchain_typecdrtypescount
0ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical Cluster Same0.0
1ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical Cluster Shift0.0
2ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical Cluster to Noise1.0
3ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Canonical to Pseudo0.0
4ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR...alpha_chain1Noise0.0
..................
5671YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Noise to Pseudo Cluster0.0
5672YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo Cluster Same0.0
5673YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo Cluster Shift0.0
5674YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo Cluster to Noise0.0
5675YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA...beta_chain3Pseudo to Canonical0.0
\n", "

5676 rows × 5 columns

\n", "
" ], "text/plain": [ " cdr_sequences_collated chain_type cdr \\\n", "0 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "1 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "2 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "3 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "4 ATGYPS-ATKADDK-ALSDPVNDMR-SGHAT-FQNNGV-ASSLRGR... alpha_chain 1 \n", "... ... ... ... \n", "5671 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5672 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5673 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5674 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "5675 YSGSPE-HISR-ALSGFNNAGNMLT-SGHAT-FQNNGV-ASSLGGA... beta_chain 3 \n", "\n", " types count \n", "0 Canonical Cluster Same 0.0 \n", "1 Canonical Cluster Shift 0.0 \n", "2 Canonical Cluster to Noise 1.0 \n", "3 Canonical to Pseudo 0.0 \n", "4 Noise 0.0 \n", "... ... ... \n", "5671 Noise to Pseudo Cluster 0.0 \n", "5672 Pseudo Cluster Same 0.0 \n", "5673 Pseudo Cluster Shift 0.0 \n", "5674 Pseudo Cluster to Noise 0.0 \n", "5675 Pseudo to Canonical 0.0 \n", "\n", "[5676 rows x 5 columns]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apo_holo_clusters_agg" ] }, { "cell_type": "code", "execution_count": 10, "id": "3d449881", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABdkAAASHCAYAAAAeInSgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxV9Z0//vcNgRCIoFQSFkG04ojVAooiWhUVS9XSOPOzOlgL4tJxYarGujBlkVZBa0W0XxSXQcYqLrXWWLEuZUQsog4MOC6IGxbHLyAuEAkahJzfH/16a2QLhyQ3Mc/n43EfD865n88575OE3PfjdU8+N5MkSRIAAAAAAMB2y8t1AQAAAAAA0FQJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2amVd955JzKZTCxatGiHjjNw4MC48MIL66Sm5iiTycRDDz1U6/GzZ8+OTCYTq1evrreaGuL8PXr0iMmTJ+/QMaZPnx4DBw7coWN8Va6/vgANQQ/QOOgB0tMDAKSjB2gc9ADp6QFoSEJ2GtSDDz4Yv/zlL+vkWHX1gk/j91//9V/xk5/8JNdlNCo//elP48ADD4yCgoLo06dPrssB2CY9AGnoAWp68cUXY+jQodGtW7coLCyMXr16xQ033JDrsgC2Sg9AGnqAmj788MP43ve+F126dImCgoLo1q1bjBw5MioqKnJdGv9Pfq4LoHnp0KFDrkugCerYsWOuS0hl48aNkclkIi+vft7PPOOMM+L555+P//mf/6mX4wPUJT0AaegBalqwYEEUFxfHXXfdFd26dYtnn302fvKTn0SLFi1i5MiRdXougLqiByANPUBNeXl5UVpaGldeeWV07Ngx3nzzzTj//PPjo48+ihkzZtTpuUjHnexkVVdXx69+9avYa6+9oqCgILp37x5XXXVVjTFvv/12HHXUUdGmTZvo3bt3zJs3L/vchx9+GEOHDo2uXbtGmzZtYv/994977rmnxvyv/plYjx49YsKECXHGGWfETjvtFN27d49bb721VvXuscceERHRt2/fyGQyMXDgwJgzZ060bNkyVqxYUWPshRdeGIcffnhE/O3PhXbeeed46KGHomfPntG6desYPHhwvPvuuzXmlJeXxwEHHBCtW7eOPffcM8aPHx8bNmyoVW1p/Nd//Vcce+yxseuuu0b79u3jyCOPjP/+7//e4vgv3sG/995749BDD43WrVvHfvvtF08//fQmYxcsWBD9+vWLNm3axKGHHhpLlizJPvfWW29FaWlplJSURFFRURx00EHx5z//udZ1V1VVxWWXXRbdunWLgoKC2GuvveLf//3f6/T8X/0zsUwmE7fffnv84z/+Y7Rp0yZ69uwZDz/8cK1rTnstjz76aOy9995RWFgYRx11VLzzzjs15n/xs/Xwww/HvvvuGwUFBbFs2bIdrmtzbrzxxjj//PNjzz33rJfjA82LHkAPoAdoGj3AGWecETfccEMceeSRseeee8Zpp50WI0aMiAcffLDOzwU0D3oAPYAeoGn0ALvsskuce+650a9fv9h9993jmGOOifPOOy+eeeaZOj8XKSXw/1x66aXJLrvskkyfPj158803k2eeeSa57bbbkiRJkqVLlyYRkeyzzz7JI488kixZsiQ56aSTkt133z35/PPPkyRJkv/93/9Nrr322mThwoXJW2+9ldx4441JixYtkueffz57jiOPPDK54IILstu777570qFDh2TKlCnJG2+8kUycODHJy8tLXnvttW3W+8ILLyQRkfz5z39Oli9fnnz44YdJkiTJ3nvvnfzqV7/Kjlu/fn2y6667JtOmTUuSJEnuuOOOpGXLlkm/fv2SZ599Npk/f35y8MEHJ4ceemh2zpw5c5J27dol06dPT956663kiSeeSHr06JFcccUVW6znrrvuStq2bbvVx5w5c7Y4f9asWclvf/vbZPHixcmrr76anHnmmUlJSUlSUVGRHRMRyR/+8Ica35PddtsteeCBB5JXX301Oeuss5Kddtop+eCDD5IkSZKnnnoqiYikf//+yezZs5NXXnklOfzww2tc66JFi5KpU6cmL730UvL6668no0ePTlq3bp389a9/3eb3IEmS5OSTT066deuWPPjgg8lbb72V/PnPf07uvffeOj3/7rvvnlx//fU1vg677bZbMmPGjOSNN95IfvrTnyZFRUXZn4HNueOOO5Ijjzwy9bUsW7YsKSgoSMrKypLXXnstueuuu5KSkpIkIpKPP/44e46WLVsmhx56aDJ37tzktddeSyorKzd7rm39rPzLv/zLVmv9wrhx45LevXvXaizAlugB9AB6gKbXA3zhRz/6UfL//X//33bNAfiCHkAPoAdomj3Ae++9lxx55JHJj370o1rPoX4J2UmSJEkqKiqSgoKC7IvpV33xi/z222/P7nvllVeSiEgWL168xeOecMIJycUXX5zd3tyL62mnnZbdrq6uToqLi5Obb755mzV/UdPChQtr7L/mmmuSXr16Zbd///vfJ0VFRcnatWuTJPnbL8CISJ577rnsmMWLFycRkW0EjjnmmGTChAk1jvvb3/426dy58xbrqaioSN54442tPtatW7fN6/rCxo0bk5122in54x//mN23uRfXq6++Ovv8559/nuy2227JNddckyTJ31/c/vznP2fHzJw5M4mI5NNPP93iub/1rW8lv/nNb7ZZ45IlS5KISJ588snNPl9X59/ci+vo0aOz22vXrk0iIvnTn/60xWNu68V1W9cyatSoZN99962x77LLLtvkxTUikkWLFm3xPF/Y1s/KypUrt3mMJBGyAztOD6AH+DI9wKYaaw+QJEkyd+7cJD8/P3n88cdrPQfgC3oAPcCX6QE21Rh7gH/+539OCgsLk4hIhgwZstWvKQ3LmuxERMTixYujqqoqjjnmmK2O+/a3v539d+fOnSMi4v3334999tknNm7cGBMmTIj7778/3nvvvVi/fn1UVVVFmzZtan3MTCYTnTp1ivfffz/1tZx++ukxevToeO655+KQQw6J6dOnx8knnxxt27bNjsnPz4+DDjoou73PPvvEzjvvHIsXL46DDz44XnzxxZg7d26NP5PbuHFjfPbZZ7Fu3brNXtNOO+0UO+20U+q6V65cGaNHj47Zs2fH+++/Hxs3box169Zt88+MBgwYUOO6+vXrF4sXL64xZkvft+7du8fatWvjiiuuiJkzZ8by5ctjw4YN8emnn9bqz5sWLVoULVq0iCOPPHKr4+rj/F8+Ztu2baNdu3Y79HOzrWtZvHhx9O/fv8a+L3/tv9CqVasatW3JXnvtla5QgDqmB9AD6AGaZg/w8ssvR2lpaYwbNy6++93v1skxgeZFD6AH0AM0vR7g+uuvj3HjxsXrr78eo0aNirKysrjpppt2+LjsOCE7ERFRWFhYq3EtW7bM/juTyUTE39Zwi4i49tpr44YbbojJkyfH/vvvH23bto0LL7ww1q9fX+tjfnHcL46ZRnFxcQwZMiTuuOOO2GOPPeJPf/pTzJ49e7uOsXbt2hg/fnz80z/90ybPtW7derNz7r777viXf/mXrR73T3/6U3ZNuK8aPnx4fPjhh3HDDTfE7rvvHgUFBTFgwIBtfv1qY2vft5/97Gfx5JNPxq9//evYa6+9orCwME466aRanbcufm7Snr+uf25qey21Oc4X17g1RUVFW33+tNNOi6lTp9ZJTQBboweoSQ+gB9iR4zRUD/Dqq6/GMcccEz/5yU9i9OjR21UnwBf0ADXpAfQAO3KchuoBOnXqFJ06dYp99tknOnToEIcffniMGTMm+0YGuSNkJyIievbsGYWFhTFr1qw466yzUh1j7ty5UVpaGqeddlpE/O2X5+uvvx777rtvXZaa1apVq4j42zvLX3XWWWfF0KFDY7fddotvfvObcdhhh9V4fsOGDTF//vw4+OCDIyJiyZIlsXr16ujVq1dERBxwwAGxZMmS7XqX8Qc/+MEm73B+VdeuXbf43Ny5c+Omm26K448/PiIi3n333fjggw+2ed7nnnsujjjiiIj423UtWLAgRo4cWeu6586dG6effnr84z/+Y0T8rbH46gd5bMn+++8f1dXV8fTTT8egQYNqfc66On9d2ta19OrVa5MPVXnuuedSn2/RokVbfb5du3apjw2wPfQAegA9QNPqAV555ZU4+uijY/jw4Zt8OCHA9tAD6AH0AE2rB/iqL95gqKqqSlsSdUjITkT87V3Zyy67LC699NJo1apVHHbYYbFq1ap45ZVX4swzz6zVMXr27BkPPPBAPPvss7HLLrvEpEmTYuXKlfX24lpcXByFhYXx2GOPxW677RatW7eO9u3bR0TE4MGDo127dnHllVfGL37xi03mtmzZMv71X/81brzxxsjPz4+RI0fGIYcckn2xHTt2bHz/+9+P7t27x0knnRR5eXnx4osvxssvvxxXXnnlZuvZ0T8T69mzZ/z2t7+Nfv36RUVFRVxyySW1eld1ypQp0bNnz+jVq1dcf/318fHHH8cZZ5yxXed98MEHY8iQIZHJZGLMmDG1fie4R48eMXz48DjjjDPixhtvjN69e8df//rXeP/99+Pkk0+u9/PXpW1dyznnnBPXXXddXHLJJXHWWWfFggULYvr06anPt6N/Jvbmm2/G2rVrY8WKFfHpp59mX6z33XffbOMJUBt6AD2AHqDp9AAvv/xyHH300TF48OAoKyuLFStWREREixYtomPHjqmP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mrecLhczcODASJJki89Pnz59s3MWLlxYj1UBAAAAAEDtNKkPPgUAAAAAgMZEyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSShWyH3300bF69epN9ldUVMTRRx+9ozUBAAAAAECTkCpknz17dqxfv36T/Z999lk888wzO1wUAAAAAAA0BfnbM/h//ud/sv9+9dVXY8WKFdntjRs3xmOPPRZdu3atu+oAAAAAAKAR266QvU+fPpHJZCKTyWx2WZjCwsL4zW9+U2fFAQAAAABAY7ZdIfvSpUsjSZLYc88944UXXoiOHTtmn2vVqlUUFxdHixYt6rxIAAAAAABojLYrZN99990jIqK6urpeigEAAAAAgKZku0L2L3vjjTfiqaeeivfff3+T0H3s2LG1Ps6UKVPi2muvjRUrVkTv3r3jN7/5TRx88MFbHD958uS4+eabY9myZbHrrrvGSSedFBMnTozWrVunvRQAAAAAAEglVch+2223xbnnnhu77rprdOrUKTKZTPa5TCZT65D9vvvui7Kyspg6dWr0798/Jk+eHIMHD44lS5ZEcXHxJuNnzJgRl19+eUybNi0OPfTQeP311+P000+PTCYTkyZNSnMpAAAAAACQWqqQ/corr4yrrroqLrvssh06+aRJk+Lss8+OESNGRETE1KlTY+bMmTFt2rS4/PLLNxn/7LPPxmGHHRannnpqRET06NEjhg4dGs8///wO1QEAAAAAAGnkpZn08ccfxw9/+MMdOvH69etjwYIFMWjQoL8Xk5cXgwYNinnz5m12zqGHHhoLFiyIF154ISIi3n777Xj00Ufj+OOP3+J5qqqqoqKiosYDAPj60wMAQPOkBwCgoaUK2X/4wx/GE088sUMn/uCDD2Ljxo1RUlJSY39JSUmsWLFis3NOPfXU+MUvfhHf+c53omXLlvHNb34zBg4cGP/2b/+2xfNMnDgx2rdvn31069Zth+oGAJoGPQAANE96AAAaWqrlYvbaa68YM2ZMPPfcc7H//vtHy5Ytazz/05/+tE6K+6rZs2fHhAkT4qabbor+/fvHm2++GRdccEH88pe/jDFjxmx2zqhRo6KsrCy7XVFR4QUWAJoBPQAANE96AAAaWqqQ/dZbb42ioqJ4+umn4+mnn67xXCaTqVXIvuuuu0aLFi1i5cqVNfavXLkyOnXqtNk5Y8aMiR//+Mdx1llnRUTE/vvvH5WVlfGTn/wkfv7zn0de3qY35hcUFERBQUFtLw0A+JrQAwBA86QHAKChpQrZly5dusMnbtWqVRx44IExa9asOPHEEyMiorq6OmbNmhUjR47c7Jx169ZtEqS3aNEiIiKSJNnhmgAAAAAAYHukCtnrSllZWQwfPjz69esXBx98cEyePDkqKytjxIgRERExbNiw6Nq1a0ycODEiIoYMGRKTJk2Kvn37ZpeLGTNmTAwZMiQbtgMAAAAAQENJFbKfccYZW31+2rRptTrOKaecEqtWrYqxY8fGihUrok+fPvHYY49lPwx12bJlNe5cHz16dGQymRg9enS899570bFjxxgyZEhcddVVaS4DAAAAAAB2SKqQ/eOPP66x/fnnn8fLL78cq1evjqOPPnq7jjVy5MgtLg8ze/bsGtv5+fkxbty4GDdu3HadAwAAAAAA6kOqkP0Pf/jDJvuqq6vj3HPPjW9+85s7XBQAAAAAADQFedseUssD5eVFWVlZXH/99XV1SAAAAAAAaNTqLGSPiHjrrbdiw4YNdXlIAAAAAABotFItF1NWVlZjO0mSWL58ecycOTOGDx9eJ4U1pAMvuXO7xmc2rI/2X9oeOObeSPJb1WrugmuHbde5AAAAAABovFKF7AsXLqyxnZeXFx07dozrrrsuzjjjjDopDAAAAAAAGrtUIftTTz1V13UAAAAAAECTkypk/8KqVatiyZIlERHxD//wD9GxY8c6KQoAAAAAAJqCVB98WllZGWeccUZ07tw5jjjiiDjiiCOiS5cuceaZZ8a6devqukYAAAAAAGiUUoXsZWVl8fTTT8cf//jHWL16daxevTrKy8vj6aefjosvvriuawQAAAAAgEYp1XIxv//97+OBBx6IgQMHZvcdf/zxUVhYGCeffHLcfPPNdVUfAAAAAAA0WqnuZF+3bl2UlJRssr+4uNhyMQAAAAAANBupQvYBAwbEuHHj4rPPPsvu+/TTT2P8+PExYMCAOisOAAAAAAAas1TLxUyePDm+973vxW677Ra9e/eOiIgXX3wxCgoK4oknnqjTAgEAAAAAoLFKFbLvv//+8cYbb8Tdd98dr732WkREDB06NH70ox9FYWFhnRYIAAAAAACNVaqQfeLEiVFSUhJnn312jf3Tpk2LVatWxWWXXVYnxQEAAAAAQGOWak32W265JfbZZ59N9n/rW9+KqVOn7nBRAAAAAADQFKQK2VesWBGdO3feZH/Hjh1j+fLlO1wUAAAAAAA0BalC9m7dusXcuXM32T937tzo0qXLDhcFAAAAAABNQao12c8+++y48MIL4/PPP4+jjz46IiJmzZoVl156aVx88cV1WiAAAAAAADRWqUL2Sy65JD788MM477zzYv369RER0bp167jsssti1KhRdVogAAAAAAA0VqlC9kwmE9dcc02MGTMmFi9eHIWFhdGzZ88oKCio6/oAAAAAgCYoSZKorKzMbrdt2zYymUwOK4L6kSpk/0JRUVEcdNBBdVULAAAAAPA1UVlZGaWlpdnt8vLyKCoqymFFUD9SffApAAAAAAAgZAcAAAAAgNSE7AAAAAAAkJKQHQAAAAAAUhKyAwAAAABASkJ2AAAAAABIScgOAAAAAAApCdkBAAAAACAlITsAAAAAAKQkZAcAAAAAgJSE7AAAAAAAkJKQHQAAAAAAUhKyAwAAAABASkJ2AAAAAABIScgOAAAAAAApCdkBAAAAACAlITsAAAAAAKQkZAcAAAAAgJSE7AAAAAAAkFJ+rgsAAMiVAy+5c7vGZzasj/Zf2h445t5I8lvVau6Ca4dt17kAAABoGtzJDgAAAAAAKbmTHQAAAAD4WkuSJCorK7Pbbdu2jUwmk8OK+DoRsgMAAAAAX2uVlZVRWlqa3S4vL4+ioqIcVsTXSc6Xi5kyZUr06NEjWrduHf37948XXnhhq+NXr14d559/fnTu3DkKCgpi7733jkcffbSBqgUAAAAAgL/L6Z3s9913X5SVlcXUqVOjf//+MXny5Bg8eHAsWbIkiouLNxm/fv36OPbYY6O4uDgeeOCB6Nq1a/z1r3+NnXfeueGLBwAAAACg2ctpyD5p0qQ4++yzY8SIERERMXXq1Jg5c2ZMmzYtLr/88k3GT5s2LT766KN49tlno2XLlhER0aNHj4YsGQAAAAAAsnK2XMz69etjwYIFMWjQoL8Xk5cXgwYNinnz5m12zsMPPxwDBgyI888/P0pKSmK//faLCRMmxMaNG7d4nqqqqqioqKjxAAC+/vQAANA86QEAaGg5C9k/+OCD2LhxY5SUlNTYX1JSEitWrNjsnLfffjseeOCB2LhxYzz66KMxZsyYuO666+LKK6/c4nkmTpwY7du3zz66detWp9cBADROegAAaJ70AAA0tJx/8On2qK6ujuLi4rj11lvjwAMPjFNOOSV+/vOfx9SpU7c4Z9SoUbFmzZrs4913323AigGAXNEDAEDzpAcAoKHlbE32XXfdNVq0aBErV66ssX/lypXRqVOnzc7p3LlztGzZMlq0aJHd16tXr1ixYkWsX78+WrVqtcmcgoKCKCgoqNviAYBGTw8AAM2THgCAhpazO9lbtWoVBx54YMyaNSu7r7q6OmbNmhUDBgzY7JzDDjss3nzzzaiurs7ue/3116Nz586bDdgBAAAAAKA+5XS5mLKysrjtttviP/7jP2Lx4sVx7rnnRmVlZYwYMSIiIoYNGxajRo3Kjj/33HPjo48+igsuuCBef/31mDlzZkyYMCHOP//8XF0CAAAAAADNWM6Wi4mIOOWUU2LVqlUxduzYWLFiRfTp0ycee+yx7IehLlu2LPLy/v4+QLdu3eLxxx+Piy66KL797W9H165d44ILLojLLrssV5cAAAAAAEAzltOQPSJi5MiRMXLkyM0+N3v27E32DRgwIJ577rl6rgoAAAAAALYtp8vFAAAAAABAUyZkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEgpP9cFAAAANJQkSaKysjK73bZt28hkMjmsCACApk7IDgAANBuVlZVRWlqa3S4vL4+ioqIcVgQAQFNnuRgAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACkJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlBpFyD5lypTo0aNHtG7dOvr37x8vvPBCrebde++9kclk4sQTT6zfAgEAAAAAYDNyHrLfd999UVZWFuPGjYv//u//jt69e8fgwYPj/fff3+q8d955J372s5/F4Ycf3kCVAgAAAABATTkP2SdNmhRnn312jBgxIvbdd9+YOnVqtGnTJqZNm7bFORs3bowf/ehHMX78+Nhzzz0bsFoAAAAAAPi7nIbs69evjwULFsSgQYOy+/Ly8mLQoEExb968Lc77xS9+EcXFxXHmmWdu8xxVVVVRUVFR4wEAfP3pAQCgedIDANDQchqyf/DBB7Fx48YoKSmpsb+kpCRWrFix2Tl/+ctf4t///d/jtttuq9U5Jk6cGO3bt88+unXrtsN1AwCNnx4AAJonPQAADS3ny8Vsj08++SR+/OMfx2233Ra77rprreaMGjUq1qxZk328++679VwlANAY6AEAoHnSAwDQ0PJzefJdd901WrRoEStXrqyxf+XKldGpU6dNxr/11lvxzjvvxJAhQ7L7qqurIyIiPz8/lixZEt/85jdrzCkoKIiCgoJ6qB4AaMz0AADQPOkBAGhoOb2TvVWrVnHggQfGrFmzsvuqq6tj1qxZMWDAgE3G77PPPvHSSy/FokWLso8f/OAHcdRRR8WiRYv8CRgAAAAAAA0qp3eyR0SUlZXF8OHDo1+/fnHwwQfH5MmTo7KyMkaMGBEREcOGDYuuXbvGxIkTo3Xr1rHffvvVmL/zzjtHRGyyHwAAAAAA6lvOQ/ZTTjklVq1aFWPHjo0VK1ZEnz594rHHHst+GOqyZcsiL69JLR0PAAAAAEAzkfOQPSJi5MiRMXLkyM0+N3v27K3OnT59et0XBAAAAPD/JEkSlZWV2e22bdtGJpPJYUUANCaNImQHAAAAaKwqKyujtLQ0u11eXh5FRUU5rAiAxsQ6LAAAAAAAkJKQHQAAAAAAUhKyAwAAAABASkJ2AAAAAABIScgOAAAAAAApCdkBAAAAACCl/FwXAAAAAAA0DQdecmetx2Y2rI/2X9oeOObeSPJb1Xr+gmuHbUdlkDvuZAcAAAAAgJSE7AAAAAAAkJKQHQAAAAAAUhKyAwAAAABASkJ2AAAAAABIScgOAAAAAAApCdkBAAAAACAlITsAAAAAAKQkZAcAAAAAgJSE7AAAAAAAkFJ+rgsAAAAgd5IkicrKyux227ZtI5PJ5LAigKbJ71NovoTsAAAAzVhlZWWUlpZmt8vLy6OoqCiHFQE0TX6fQvMlZAcAAAAAmpQDL7lzu8ZnNqyP9l/aHjjm3kjyW9V6/oJrh23X+WherMkOAAAAAAApCdkBAAAAACAlITsAAAAAAKQkZAcAAAAAgJR88CkAjU6SJFFZWZndbtu2bWQymRxWBAAAALB5QnYAGp3KysooLS3NbpeXl0dRUVEOKwIAAADYPMvFAAAAAABASu5kBwAAAICvEUtwQsMSsgMAAADA14glOKFhWS4GAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACn54FOgWfJJ6wAAAADUBSE70Cz5pHUAAAAA6oLlYgAAAAAAICUhOwAAAAAApCRkBwAAAACAlITsAAAAAACQkpAdAAAAAABSErIDAAAAAEBKQnYAAAAAAEhJyA4AAAAAACk1ipB9ypQp0aNHj2jdunX0798/XnjhhS2Ove222+Lwww+PXXbZJXbZZZcYNGjQVscDAEBDSpIk1q5dm30kSZLrkgAAgHqUn+sC7rvvvigrK4upU6dG//79Y/LkyTF48OBYsmRJFBcXbzJ+9uzZMXTo0Dj00EOjdevWcc0118R3v/vdeOWVV6Jr164NUnPSomWs+fbQGtsAwNefHoDaqKysjNLS0ux2eXl5FBUV5bAiAACgPuX8TvZJkybF2WefHSNGjIh99903pk6dGm3atIlp06Ztdvzdd98d5513XvTp0yf22WefuP3226O6ujpmzZrVcEVnMpHkt8o+IpNpuHMDALmjBwAAAOArchqyr1+/PhYsWBCDBg3K7svLy4tBgwbFvHnzanWMdevWxeeffx4dOnSorzIBAAAAAGCzcrpczAcffBAbN26MkpKSGvtLSkritddeq9UxLrvssujSpUuNoP7LqqqqoqqqKrtdUVGRvmAAoMnQAwBA86QHAKCh5Xy5mB1x9dVXx7333ht/+MMfonXr1psdM3HixGjfvn320a1btwauEgDIBT0AADRPegAAGlpOQ/Zdd901WrRoEStXrqyxf+XKldGpU6etzv31r38dV199dTzxxBPx7W9/e4vjRo0aFWvWrMk+3n333TqpHQBo3PQAANA86QEAaGg5XS6mVatWceCBB8asWbPixBNPjIjIfojpyJEjtzjvV7/6VVx11VXx+OOPR79+/bZ6joKCgigoKKjLsoGUkiSJysrK7Hbbtm0j40MDgXqiBwCA5kkPAEBDy2nIHhFRVlYWw4cPj379+sXBBx8ckydPjsrKyhgxYkRERAwbNiy6du0aEydOjIiIa665JsaOHRszZsyIHj16xIoVKyIioqioKIqKinJ2HcC2VVZWRmlpaXa7vLzc/1sAAAAAmrSch+ynnHJKrFq1KsaOHRsrVqyIPn36xGOPPZb9MNRly5ZFXt7fV7W5+eabY/369XHSSSfVOM64cePiiiuuaMjSAQAAgCbowEvu3K7xmQ3ro/2XtgeOuTeS/Fa1mrvg2mHbdS4Amp6ch+wRESNHjtzi8jCzZ8+usf3OO+/Uf0EAAAAAAFALOf3gUwAAAAAAaMqE7AAAAAAAkFKjWC4GqF9JkkRlZWV2u23btpHJZHJYEQBfF15jAACA5k7IDs1AZWVllJaWZrfLy8ujqKgohxUB8HXhNQYAAGjuhOwAAECTdeAld27X+MyG9dH+S9sDx9wbSX6rWs9fcO2w7TofAE2X1xigtoTsAADwNWU5HwAAqH9CdgAA+JqynA8AANS/vFwXAAAAAAAATZWQHQAAAAAAUhKyAwAAAABASkJ2AAAAAABIScgOAAAAAAApCdkBAAAAACAlITsAAAAAAKQkZAcAAAAAgJSE7AAAAAAAkJKQHQAAAAAAUsrPdQEAAADUnQMvuXO7xmc2rI/2X9oeOObeSPJb1Xr+gmuHbdf5ANh+frdD4+ZOdgAAAAAASEnIDgAAAAAAKVkuBvha8KdzAAAAAOSCO9kBAAAAACAlITsAAAAAAKQkZAcAAAAAgJSsyQ5AvbNmPtCU+R0GAABsjTvZAQAAAAAgJSE7AAAAAACkJGQHAAAAAICUrMkO9SRJkqisrMxut23bNjKZTA4rAgAAAADqmpAd6kllZWWUlpZmt8vLy6OoqCiHFQEAAAAAdc1yMQAAAAAAkJKQHQAAAAAAUrJcDAAAAABQ55IWLWPNt4fW2IavIyE7NEEHXnLndo3PbFgf7b+0PXDMvZHkt6r1/AXXDtuu8wHQdHmNadx8fwCAJiWT2a7eA5oqy8UAAAAAAEBK7mQHAAAAgB1kaRRovoTsAAAAALCjLI0CzZaQHdgh27M2rHVhAQAAAPi6EbJTJ5IkicrKyux227ZtI5PJ5LAiAAAAAID6J2SnTlRWVkZpaWl2u7y8PIqKinJYEQAAANQNa21D0+f/MfVJyA61tD3LokRYGgUAAOBrw1rb0PT5f0w9yst1AQAAAAAA0FQJ2QEAAAAAICUhOwAAAAAApCRkBwAAAACAlBpFyD5lypTo0aNHtG7dOvr37x8vvPDCVsf/7ne/i3322Sdat24d+++/fzz66KMNVCkAAAAAAPxdfq4LuO+++6KsrCymTp0a/fv3j8mTJ8fgwYNjyZIlUVxcvMn4Z599NoYOHRoTJ06M73//+zFjxow48cQT47//+79jv/32y8EVfD0deMmd2zU+s2F9tP/S9sAx927XJzYvuHbYdp0PAAAAAKAxyPmd7JMmTYqzzz47RowYEfvuu29MnTo12rRpE9OmTdvs+BtuuCG+973vxSWXXBK9evWKX/7yl3HAAQfE//k//6eBKwcAAAAAoLnL6Z3s69evjwULFsSoUaOy+/Ly8mLQoEExb968zc6ZN29elJWV1dg3ePDgeOihhzY7vqqqKqqqqrLba9asiYiIioqK7L6NVZ+mvYTt9uXzNmbb+zXJbFgfGzZsqDE/2bix1vObwtelMX1NmmotjaWO+q6FTeX6+7PTTjtFJpPZrhpo+vQA6eT6/2tjtN0/J0kSH/3DiX/f3LAhwutdvfE12ZSvyd/pAZonPQB1pSF/TiKaTg/QWP7/NKbvD41PQ/cAmSRJkgY721f83//7f6Nr167x7LPPxoABA7L7L7300nj66afj+eef32ROq1at4j/+4z9i6NCh2X033XRTjB8/PlauXLnJ+CuuuCLGjx9fPxcAQJOwZs2aaNeuXa7LoIHpAQDQAzRPegAAGroHyPma7PVt1KhRNe58r66ujo8++ii+8Y1v7NC7GRUVFdGtW7d49913c9q0NZY61NK462hMtTSWOtTSuOuo61p22mmnOqqKpkQP0PxqaSx1qKVx16GWxl1HXdeiB2ie9ADNr5bGUodaGncdamncddR1LQ3dA+Q0ZN91112jRYsWm9yBvnLlyujUqdNm53Tq1Gm7xhcUFERBQUGNfTvvvHP6or+iXbt2Of8BbEx1RKilMdcR0XhqaSx1RKilMdcR0bhqoWnRAzS8xlJLY6kjQi2NuY4ItTTmOiIaVy00LXqAhtdYamksdUSopTHXEaGWxlxHROOqpbZy+sGnrVq1igMPPDBmzZqV3VddXR2zZs2qsXzMlw0YMKDG+IiIJ598covjAQAAAACgvuR8uZiysrIYPnx49OvXLw4++OCYPHlyVFZWxogRIyIiYtiwYdG1a9eYOHFiRERccMEFceSRR8Z1110XJ5xwQtx7770xf/78uPXWW3N5GQAAAAAANEM5D9lPOeWUWLVqVYwdOzZWrFgRffr0icceeyxKSkoiImLZsmWRl/f3G+4PPfTQmDFjRowePTr+7d/+LXr27BkPPfRQ7Lfffg1ad0FBQYwbN26TP0FraI2lDrU07joaUy2NpQ61NO46Glst8GWN5WezsdTRmGppLHWopXHXoZbGXUdjqwW+rLH8bDaWOhpTLY2lDrU07jrU0rjraGy1bK9MkiRJrosAAAAAAICmKKdrsgMAAAAAQFMmZAcAAAAAgJSE7AAAAAAAkJKQHQAAAAAAUhKyAwAAAABASkJ2AAAAAABIScgOAAAAAAApCdkBAAAAACAlITsAAAAAAKQkZAcAAAAAgJSE7AAAAAAAkJKQHQAAAAAAUhKyAwAAAABASkJ2AAAAAABIScgOAAAAAAApCdkBAAAAACAlITsAAAAAAKQkZAcAAAAAgJSE7Gy3d955JzKZTCxatGiHjjNw4MC48MIL66Smr5vTTz89TjzxxFyXsd2uuOKK6NOnzw4do65+vk4//fS44oordugYX1UX1wfQlOkB6p8eQA8A0BjpAeqfHkAPQNMmZCdnHnzwwfjlL39ZJ8eqq1/IXyezZ8+OTCYTq1evznUp26Vbt26xfPny2G+//XJdSqOxfPnyOPXUU2PvvfeOvLw8TSnQ5OkB6pce4OvjwQcfjGOPPTY6duwY7dq1iwEDBsTjjz+e67IAUtMD1C89wNfHX/7ylzjssMPiG9/4RhQWFsY+++wT119/fa7LYiuE7ORMhw4dYqeddsp1GTQyLVq0iE6dOkV+fn6uS9lu69evr5fjVlVVRceOHWP06NHRu3fvejkHQEPSA7A5eoBNzZkzJ4499th49NFHY8GCBXHUUUfFkCFDYuHChfVyPoD6pgdgc/QAm2rbtm2MHDky5syZE4sXL47Ro0fH6NGj49Zbb62X87HjhOxsVnV1dfzqV7+KvfbaKwoKCqJ79+5x1VVX1Rjz9ttvx1FHHRVt2rSJ3r17x7x587LPffjhhzF06NDo2rVrtGnTJvbff/+45557asz/6p+J9ejRIyZMmBBnnHFG7LTTTtG9e/da//LYY489IiKib9++kclkYuDAgTFnzpxo2bJlrFixosbYCy+8MA4//PCIiJg+fXrsvPPO8dBDD0XPnj2jdevWMXjw4Hj33XdrzCkvL48DDjggWrduHXvuuWeMHz8+NmzYUKvadsT48eOzdy6dc845NX55V1dXx8SJE2OPPfaIwsLC6N27dzzwwAMR8bd39I866qiIiNhll10ik8nE6aefHhERjz32WHznO9+JnXfeOb7xjW/E97///XjrrbdqXdP//u//xtChQ6NDhw7Rtm3b6NevXzz//PM1xvz2t7+NHj16RPv27eOf//mf45NPPsk+t63zf/VuhC/eiZ81a1b069cv2rRpE4ceemgsWbJku76Waa7l6quvjpKSkthpp53izDPPjM8++6zG/C/+nO+qq66KLl26xD/8wz/scE2b06NHj7jhhhti2LBh0b59+3o5B8AX9AB6gC3RA/xdQ/UAkydPjksvvTQOOuig6NmzZ0yYMCF69uwZf/zjH+vlfEDzpgfQA2yJHuDvGqoH6Nu3bwwdOjS+9a1vRY8ePeK0006LwYMHxzPPPFMv52PHCdnZrFGjRsXVV18dY8aMiVdffTVmzJgRJSUlNcb8/Oc/j5/97GexaNGi2HvvvWPo0KHZF5zPPvssDjzwwJg5c2a8/PLL8ZOf/CR+/OMfxwsvvLDV81533XXRr1+/WLhwYZx33nlx7rnn1uqX6BfH/fOf/xzLly+PBx98MI444ojYc88947e//W123Oeffx533313nHHGGdl969ati6uuuiruvPPOmDt3bqxevTr++Z//Ofv8M888E8OGDYsLLrggXn311bjlllti+vTpmzQbX3b33XdHUVHRVh/b+sU4a9asWLx4ccyePTvuueeeePDBB2P8+PHZ5ydOnBh33nlnTJ06NV555ZW46KKL4rTTTounn346unXrFr///e8jImLJkiWxfPnyuOGGGyIiorKyMsrKymL+/Pkxa9asyMvLi3/8x3+M6urqbX6d165dG0ceeWS899578fDDD8eLL74Yl156aY25b731Vjz00EPxyCOPxCOPPBJPP/10XH311dnn057/5z//eVx33XUxf/78yM/Pr/E9TGNb13L//ffHFVdcERMmTIj58+dH586d46abbtrkOLNmzYolS5bEk08+GY888shmz/XMM89s8+fh7rvv3qHrAagregA9wOboARpHD1BdXR2ffPJJdOjQId3FA2yFHkAPsDl6gMbRAyxcuDCeffbZOPLII9NdPPUvga+oqKhICgoKkttuu22zzy9dujSJiOT222/P7nvllVeSiEgWL168xeOecMIJycUXX5zdPvLII5MLLrggu7377rsnp512Wna7uro6KS4uTm6++eZt1vxFTQsXLqyx/5prrkl69eqV3f7973+fFBUVJWvXrk2SJEnuuOOOJCKS5557Ljtm8eLFSUQkzz//fJIkSXLMMcckEyZMqHHc3/72t0nnzp23WE9FRUXyxhtvbPWxbt26Lc4fPnx40qFDh6SysjK77+abb06KioqSjRs3Jp999lnSpk2b5Nlnn60x78wzz0yGDh2aJEmSPPXUU0lEJB9//PEWz5MkSbJq1aokIpKXXnppq+OSJEluueWWZKeddko+/PDDzT4/bty4pE2bNklFRUV23yWXXJL079+/1uf/6vfyi+v485//nJ0zc+bMJCKSTz/9dIvHHT58eDJu3LjU1zJgwIDkvPPOq7Gvf//+Se/evWuco6SkJKmqqtrieZIkSdatW7fNn4cvf8225qv/bwDqkh5AD7AleoDc9wBJ8ref61122SVZuXJlrecA1IYeQA+wJXqA3PYAXbt2TVq1apXk5eUlv/jFL7Y5ntxpeosdUe8WL14cVVVVccwxx2x13Le//e3svzt37hwREe+//37ss88+sXHjxpgwYULcf//98d5778X69eujqqoq2rRpU+tjZjKZ6NSpU7z//vupr+X000+P0aNHx3PPPReHHHJITJ8+PU4++eRo27Ztdkx+fn4cdNBB2e199tkndt5551i8eHEcfPDB8eKLL8bcuXNrvGO9cePG+Oyzz2LdunWbvaaddtpph9eZ6927d41jDxgwINauXRvvvvturF27NtatWxfHHntsjTnr16+Pvn37bvW4b7zxRowdOzaef/75+OCDD7Lv2C5btmybHzKyaNGi6Nu371bvnurRo0eNa+/cuXON72Ha82/p56179+5brTnttSxevDjOOeecGvsGDBgQTz31VI19+++/f7Rq1Wqr5yosLIy99torVZ0ADUkPoAfYEj1A7nuAGTNmxPjx46O8vDyKi4vr5JgAX9AD6AG2RA+Q2x7gmWeeibVr18Zzzz0Xl19+eey1114xdOjQHT4udU/IziYKCwtrNa5ly5bZf2cymYiI7C/Ka6+9Nm644YaYPHly7L///tG2bdu48MILt/mBEF8+5hfHrc2fL21JcXFxDBkyJO64447YY4894k9/+lPMnj17u46xdu3aGD9+fPzTP/3TJs+1bt16s3Puvvvu+Jd/+ZetHvdPf/pTdk247bV27dqIiJg5c2Z07dq1xnMFBQVbnTtkyJDYfffd47bbbosuXbpEdXV17LfffrX6sI7a/Gxs63uY9vxb+3lLo7Y/59vy5UZtS5555pk47rjjtjrmlltuiR/96Ed1UhNAWnqAmvQAf6cH2FRD9gD33ntvnHXWWfG73/0uBg0atF11AtSGHqAmPcDf6QE21ZA9wBefPbD//vvHypUr44orrhCyN1JCdjbRs2fPKCwsjFmzZsVZZ52V6hhz586N0tLSOO200yLib78EX3/99dh3333rstSsL95B3Lhx4ybPnXXWWTF06NDYbbfd4pvf/GYcdthhNZ7fsGFDzJ8/Pw4++OCI+NvaZatXr45evXpFRMQBBxwQS5Ys2a53IH/wgx9E//79tzrmqy+KX/Xiiy/Gp59+mn0ReO6556KoqCi6desWHTp0iIKCgli2bNkW1+Pa3Nfkww8/jCVLlsRtt92WfWH/y1/+Uuvr+va3vx233357fPTRR6nWAt3R89elbV1Lr1694vnnn49hw4Zl9z333HOpztWvX7/sB7hsyVfXOgTIBT2AHmBL9AC56wHuueeeOOOMM+Lee++NE044IVUdANuiB9ADbIkeoPHkANXV1VFVVZWqHuqfkJ1NtG7dOi677LK49NJLo1WrVnHYYYfFqlWr4pVXXokzzzyzVsfo2bNnPPDAA/Hss8/GLrvsEpMmTYqVK1fW24trcXFxFBYWxmOPPRa77bZbtG7dOtq3bx8REYMHD4527drFlVdeGb/4xS82mduyZcv413/917jxxhsjPz8/Ro4cGYccckj2xXbs2LHx/e9/P7p37x4nnXRS5OXlxYsvvhgvv/xyXHnllZutpy7+TGz9+vVx5plnxujRo+Odd96JcePGxciRIyMvLy922mmn+NnPfhYXXXRRVFdXx3e+851Ys2ZNzJ07N9q1axfDhw+P3XffPTKZTDzyyCNx/PHHR2FhYeyyyy7xjW98I2699dbo3LlzLFu2LC6//PJa1zR06NCYMGFCnHjiiTFx4sTo3LlzLFy4MLp06RIDBgzY5vwdPX9d2ta1XHDBBXH66adHv3794rDDDou77747Xnnlldhzzz23+1x18WdiX7w4r127NlatWhWLFi2KVq1a1dv/KaB50gPoAbZED5CbHmDGjBkxfPjwuOGGG6J///6xYsWK7HG/+DkHqAt6AD3AlugBctMDTJkyJbp37x777LNPRETMmTMnfv3rX8dPf/rT1MekfuXlugAapzFjxsTFF18cY8eOjV69esUpp5yyXWuijR49Og444IAYPHhwDBw4MDp16hQnnnhivdWbn58fN954Y9xyyy3RpUuXKC0tzT6Xl5cXp59+emzcuLHGu5FfaNOmTVx22WVx6qmnxmGHHRZFRUVx3333ZZ8fPHhwPPLII/HEE0/EQQcdFIccckhcf/31sfvuu9fb9UREHHPMMdGzZ8844ogj4pRTTokf/OAHccUVV2Sf/+UvfxljxoyJiRMnRq9eveJ73/tezJw5M/unRF27do3x48fH5ZdfHiUlJdkX5nvvvTcWLFgQ++23X1x00UVx7bXX1rqmVq1axRNPPBHFxcVx/PHHx/777x9XX311tGjRolbzd/T8dWlb13LKKafEmDFj4tJLL40DDzww/vrXv8a5556bk1ojIvr27Rt9+/aNBQsWxIwZM6Jv375x/PHH56we4OtLD6AH2Bw9QG56gFtvvTU2bNgQ559/fnTu3Dn7uOCCC3JSD/D1pgfQA2yOHiA3PUB1dXWMGjUq+vTpE/369YspU6bENddcs9k3jWgcMkmSJLkuAurbmWeeGatWrYqHH364xv7p06fHhRdeGKtXr85NYdSb008/PXr06FGjIQGg+dEDND96AAAi9ADNkR6AXLJcDF9ra9asiZdeeilm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u3bNYPu1a9dQvnx5oz9ToUIF2NrawtraWr+tVq1auHr1KtLS0mBnZ6f4GXt7e9jb2/+34YmIiEjz2AGIiIiKJ3YAIiJSm8W+yW5nZ4dGjRohKipKvy0zMxNRUVFo3ry50Z9p2bIlEhMTkZmZqd8WHx+PChUqGJ1gJyIiIiIiIiIiIiIyJ4veLmbUqFH4+uuvER4ejtOnT+P9999HSkoKBgwYAADo27cvxo8fr3/9+++/j3/++QfDhw9HfHw8fvnlF8yaNQsffPCBpf4TiIiIiIiIiIiIiKgYs9jtYgCgR48euHHjBiZPnoyrV6+ifv362LJli34x1OTkZFhZ5ZwH8PT0xNatWzFy5EjUrVsXlSpVwvDhw/HRRx9Z6j+BiIiIiIiIiIiIiIoxi06yA8DQoUMxdOhQo/t27typ2Na8eXP8+eefZk5FRERERERERERERJQ/i94uhoiIiIiIiIiIiIioKOMkOxERERERERERERFRIXGSnYiIiIiIiIiIiIiokDjJTkRERERERERERERUSJxkJyIiIiIiIiIiIiIqJE6yExEREREREREREREVEifZiYiIiIiIiIiIiIgKiZPsRERERERERERERESFxEl2IiIiIiIiIiIiIqJC4iQ7EREREREREREREVEhcZKdiIiIiIiIiIiIiKiQOMlORERERERERERERFRInGQnIiIiIiIiIiIiIiokTrITERERERERERERERUSJ9mJiIiIiIiIiIiIiAqJk+xERERERERERERERIXESXYiIiIiIiIiIiIiokLiJDsRERERERERERERUSFxkp2IiIiIiIiIiIiIqJA4yU5EREREREREREREVEicZCciIiIiIiIiIiIiKiROshMRERERERERERERFRIn2YmIiIiIiIiIiIiIComT7EREREREREREREREhcRJdiIiIiIiIiIiIiKiQuIkOxERERERERERERFRIXGSnYiIiIiIiIiIiIiokDjJTkRERERERERERERUSJxkJyIiIiIiIiIiIiIqJE6yExEREREREREREREVEifZiYiIiIiIiIiIiIgKiZPsRERERERERERERESFxEl2IiIiIiIiIiIiIqJC4iQ7EREREREREREREVEhcZKdiIiIiIiIiIiIiKiQOMlORERERERERERERFRINpYOUBSJtS3u1H3L4DkRERERERERERERFT+cZC8MnQ5iY2fpFERERPR/1Cg44qler3ucBrdcz1tPWl3gTnB4ft+nOhYREREREREVDbxdDBERERERERERERFRIXGSnYiIiIiIiIiIiIiokDjJTkRERERERERERERUSLwnOxERERFRHtS8dz/A+/cTERERERU1/CY7EREREREREREREVEhcZKdiIiIiIiIiIiIiKiQOMlORERERERERERERFRImphk//zzz+Ht7Q0HBwc0bdoUBw8eLNDPrV69GjqdDl27djVvQCIiIiIiIiIiIiIiIyw+yb5mzRqMGjUKU6ZMwZEjR1CvXj20b98e169fz/Pnzp8/jzFjxuCFF15QKSkRERERERERERERkSGLT7IvWLAAgwcPxoABA+Dv748lS5bAyckJ3377rcmfycjIwNtvv42QkBD4+vqqmJaIiIiIiIiIiIiIKIdFJ9nT0tJw+PBhBAUF6bdZWVkhKCgI+/fvN/lz06ZNQ9myZTFo0KB8j/Ho0SPcvXvX4EFERETPPnYAIiKi4okdgIiI1GbRSfabN28iIyMD5cqVM9herlw5XL161ejP7NmzB9988w2+/vrrAh1j9uzZcHNz0z88PT3/z7mJiIhI+9gBiIiIiid2ACIiUpvFbxfzNO7du4c+ffrg66+/hoeHR4F+Zvz48bhz547+cfHiRTOnJCIiIi1gByAiIiqe2AGIiEhtNpY8uIeHB6ytrXHt2jWD7deuXUP58uUVr09KSsL58+fRqVMn/bbMzEwAgI2NDc6cOYOqVasa/Iy9vT3s7e3NkJ6IiIi0jB2AiIioeGIHICIitVn0m+x2dnZo1KgRoqKi9NsyMzMRFRWF5s2bK15fs2ZNnDhxAseOHdM/OnfujJdeegnHjh0rdpeAiQju37+vf4iIpSMRERERERERERERFSsW/SY7AIwaNQr9+vVD48aN0aRJE4SFhSElJQUDBgwAAPTt2xeVKlXC7Nmz4eDggDp16hj8vLu7OwAothcHKSkp6NKli/55ZGQkXFxcLJiIiIiIiIiIiIiIqHix+CR7jx49cOPGDUyePBlXr15F/fr1sWXLFv1iqMnJybCyKlK3jiciIiIiIiIioiKuUXDEU71e9zgNbrmet560GmJjV+CfPzy/71Mdj4i0w+KT7AAwdOhQDB061Oi+nTt35vmzK1as+O8DEREREREREREREREVAL8iTkRERERERERERERUSJxkJyIiIiIiIiIiIiIqJE6yExEREREREREREREVEifZiYiIiIiIiIiIiIgKiZPsRERERERERERERESFxEl2IiIiIiIiIiIiIqJC4iQ7EREREREREREREVEhcZKdiIiIiIiIiIiIiKiQOMlORERERERERERERFRInGQnIiIiIiIiIiIiIiokTrITERERERERERERERUSJ9mJiIiIiIiIiIiIiAqJk+xERERERERERERERIXESXYiIiIiIiIiIiIiokLiJDsRERERERERERERUSFxkp2IiIiIiIiIiIiIqJA4yU5EREREREREREREVEicZCciIiIiIiIiIiIiKiROshMRERERERERERERFRIn2YmIiIiIiIiIiIiICsnG0gGIiIiIiIiIiIioaGgUHFHg1+oep8Et1/PWk1ZDbOwK/POH5/d9imRElsNvshMRERERERERERERFRIn2YmIiIiIiIiIiIiIComT7EREREREREREREREhcRJdiIiIiIiIiIiIiKiQuLCp0RERERUaCKClJQU/XNnZ2fodDoLJiIiIiIiIlIXJ9mJiIiIqNBSUlLQpUsX/fPIyEi4uLhYMBEREREREZG6OMlORERERERERERERUqj4Iiner3ucRrccj1vPWk1xMauwD9/eH7fpzoeFS+8JzsRERERERERERERUSFxkp2IiIiIiIiIiIiIqJA4yU5EREREREREREREVEicZCciIiIiIiIiIiIiKiROshMRERERERERERERFRIn2YmIiIiIiIiIiIiIComT7EREREREREREREREhcRJdiIiIiIiIiIiIiKiQuIkOxERERERERERERFRIXGSnYiIiIiIiIiIiIiokDjJTkRERERERERERERUSJxkJyIiIiIiIiIiIiIqJE6yExEREREREREREREVko2lAxAREREREREREdF/R0SQkpKif+7s7AydTmfBRETPNk6yExERERERERERPUNSUlLQpUsX/fPIyEi4uLhYMBHRs423iyEiIiIiIiIiIiIiKiRNTLJ//vnn8Pb2hoODA5o2bYqDBw+afO3XX3+NF154ASVLlkTJkiURFBSU5+uJiIiIiIiIiIiIiMzF4pPsa9aswahRozBlyhQcOXIE9erVQ/v27XH9+nWjr9+5cyfeeust/PHHH9i/fz88PT3Rrl07XL58WeXkRERERERERERERFTcWXySfcGCBRg8eDAGDBgAf39/LFmyBE5OTvj222+Nvv7777/H//73P9SvXx81a9bEsmXLkJmZiaioKJWTExEREREREREREVFxZ9FJ9rS0NBw+fBhBQUH6bVZWVggKCsL+/fsL9H8jNTUV6enpKFWqlLliEhEREREREREREREZZWPJg9+8eRMZGRkoV66cwfZy5cohLi6uQP83PvroI1SsWNFgoj63R48e4dGjR/rnd+/eLXxgIiIiKjLYAYiIiIondgAiIlKbxW8X838xZ84crF69Ghs2bICDg4PR18yePRtubm76h6enp8opiYiIyBLYAYiIiIondgAiIlKbRSfZPTw8YG1tjWvXrhlsv3btGsqXL5/nz37yySeYM2cOtm3bhrp165p83fjx43Hnzh394+LFi/9JdiIiItI2dgAiIqLiiR2AiIjUZtHbxdjZ2aFRo0aIiopC165dAUC/iOnQoUNN/ty8efMwc+ZMbN26FY0bN87zGPb29rC3t/8vYxMREVERwA5AliLWtrhT9y2D50REpB52ACIiUptFJ9kBYNSoUejXrx8aN26MJk2aICwsDCkpKRgwYAAAoG/fvqhUqRJmz54NAJg7dy4mT56MVatWwdvbG1evXgUAuLi4wMXFxWL/HUREREREAACdDmJjZ+kURERERESkEotPsvfo0QM3btzA5MmTcfXqVdSvXx9btmzRL4aanJwMK6ucu9p8+eWXSEtLwxtvvGHwf2fKlCmYOnWqmtGJiIiIiIiIiIiIqJiz+CQ7AAwdOtTk7WF27txp8Pz8+fPmD0REzzwRQUpKiv65s7MzdDqdBRMREREREREREVFRpIlJdiIitaWkpKBLly7655GRkbzlFBERERERERUa12UhKr44yU5ERERERERERPR/xXVZiIotTrITEREREREVY7yNHhEREdH/DSfZiYiIiIiIijHeRo+IiIjo/8bK0gGIiIiIiIiIiIiIiIoqTrITERERERERERERERUSJ9mJiIiIiIiIiIiIiAqJk+xERERERERERERERIXESXYiIiIiIiIiIiIiokKysXQAIiIiIiJ6tokIUlJS9M+dnZ2h0+ksmIiI6Onwc4yIiPLCSXYiIiIiIjKrlJQUdOnSRf88MjISLi4uFkxERPR0+DlGRER54e1iiIiIiIiIiIiIiIgKiZPsRERERERERERERESFxEl2IiIiIiIiIiIiIqJC4j3ZNaRRcMRTvV73OA1uuZ63nrQaYmNX4J8/PL/vUx2PiIiIiIiIiIiIiAzxm+xERERERERERERERIXESXYiIiIiIiIiIiIiokLiJDsRERERERERERERUSFxkp2IiIiIiIiIiIiIqJA4yU5EREREREREREREVEg2lg5AREREREREREREpjUKjniq1+sep8Et1/PWk1ZDbOwK/POH5/d9quMRFXf8JjsRERERERERERERUSFxkp2IiIiIiIiIiIiIqJA4yU5EREREREREREREVEi8JzsRERER6fF+n0RERERERE+H32QnIiIiIiIiIiIiIiokfpOdiIiIqIDE2hZ36r5l8JyIiIiIiIiKN06yExERERWUTvdUt0IhIiIiIiKiZx8n2YmKARFBSkqK/rmzszN0Op0FExER0f8FP9epoPi3QkRERERkfpxkJyoGUlJS0KVLF/3zyMhIuLi4WDARERH9X/BznQqKfytERERERObHhU+JiIiIiIiIiIiIiAqJk+xERERERERERERERIXESXYiIiIiIiIiIiIiokLiPdmJ6JnQKDjiqV6ve5wGt1zPW09aDbGxK/DPH57f96mOR0RERKQW9iIiIiIidfGb7EREREREREREREREhcRJdiIiIiIiIiIiIiKiQuIkOxERERERERERERFRIfGe7ERERERE9NSe5r7fvOc3EWmNmmsX8DOMiOjZx2+yExEREREREREREREVEifZiYiIiIiIiIiIiIgKiZPsRERERERERERERESFxEl2IiIiIiIiIiIiIqJC4sKnRERERERERERE9J8Ta1vcqfuWwXOiZxEn2YmKoEbBEU/1et3jNLjlet560mqIjV2Bf/7w/L5PdTwiIno6/FynguLfChERERUpOt1TdQ+iooq3iyEiIiIiIiIiIiIiKiRNTLJ//vnn8Pb2hoODA5o2bYqDBw/m+foff/wRNWvWhIODAwICAvDrr7+qlJSIiIiIiIiIiIiIKIfFJ9nXrFmDUaNGYcqUKThy5Ajq1auH9u3b4/r160Zfv2/fPrz11lsYNGgQjh49iq5du6Jr1644efKkysmJiIiIiIiIiIiIqLiz+CT7ggULMHjwYAwYMAD+/v5YsmQJnJyc8O233xp9/aJFi9ChQwcEBwejVq1amD59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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g = sns.catplot(apo_holo_clusters_agg.sort_values(['chain_type', 'cdr', 'types']),\n", " row='chain_type', col='cdr',\n", " x='types', y='count',\n", " kind='bar')\n", "\n", "for ax in g.axes.flat:\n", " labels = ax.get_xticklabels()\n", " plt.setp(labels, rotation=90)" ] }, { "cell_type": "code", "execution_count": 11, "id": "1fc7dbc6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "chain_type cdr types \n", "alpha_chain 1 Canonical Cluster Same 66\n", " Canonical Cluster to Noise 1\n", " Noise 3\n", " Noise to Canonical Cluster 5\n", " Noise to Pseudo Cluster 4\n", " Pseudo Cluster Same 9\n", " Pseudo to Canonical 8\n", " 2 Canonical Cluster Same 54\n", " Canonical Cluster to Noise 5\n", " Noise 8\n", " Noise to Canonical Cluster 5\n", " Pseudo Cluster Same 14\n", " Pseudo Cluster to Noise 10\n", " 3 Canonical Cluster Same 16\n", " Noise 14\n", " Noise to Canonical Cluster 10\n", " Noise to Pseudo Cluster 30\n", " Pseudo Cluster Same 26\n", "beta_chain 1 Canonical Cluster Same 78\n", " Canonical Cluster Shift 11\n", " Noise to Canonical Cluster 2\n", " Pseudo Cluster Same 5\n", " 2 Canonical Cluster Same 38\n", " Canonical Cluster Shift 2\n", " Canonical Cluster to Noise 8\n", " Noise 37\n", " Noise to Canonical Cluster 2\n", " Noise to Pseudo Cluster 4\n", " Pseudo Cluster to Noise 5\n", " 3 Canonical Cluster Same 4\n", " Noise 33\n", " Noise to Canonical Cluster 9\n", " Noise to Pseudo Cluster 26\n", " Pseudo Cluster Same 24\n", "Name: count, dtype: int64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster_shift_counts = apo_holo_clusters_agg.groupby(['chain_type', 'cdr', 'types'])['count'].sum().astype(int)\n", "cluster_shift_counts[cluster_shift_counts > 0]" ] }, { "cell_type": "code", "execution_count": null, "id": "b454cb2d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Movement TypeCDR1\\textalpha{}CDR1\\textbeta{}CDR2\\textalpha{}CDR2\\textbeta{}CDR3\\textalpha{}CDR3\\textbeta{}
0Canonical Cluster Same66785438164
1Canonical Cluster Shift-11-2--
2Canonical Cluster to Noise1-58--
3Canonical to Pseudo------
4Noise3-8371433
5Noise to Canonical Cluster5252109
6Noise to Pseudo Cluster4--43026
7Pseudo Cluster Same9514-2624
8Pseudo Cluster Shift------
9Pseudo Cluster to Noise--105--
10Pseudo to Canonical8-----
\n", "
" ], "text/plain": [ " Movement Type CDR1\\textalpha{} CDR1\\textbeta{} \\\n", "0 Canonical Cluster Same 66 78 \n", "1 Canonical Cluster Shift - 11 \n", "2 Canonical Cluster to Noise 1 - \n", "3 Canonical to Pseudo - - \n", "4 Noise 3 - \n", "5 Noise to Canonical Cluster 5 2 \n", "6 Noise to Pseudo Cluster 4 - \n", "7 Pseudo Cluster Same 9 5 \n", "8 Pseudo Cluster Shift - - \n", "9 Pseudo Cluster to Noise - - \n", "10 Pseudo to Canonical 8 - \n", "\n", " CDR2\\textalpha{} CDR2\\textbeta{} CDR3\\textalpha{} CDR3\\textbeta{} \n", "0 54 38 16 4 \n", "1 - 2 - - \n", "2 5 8 - - \n", "3 - - - - \n", "4 8 37 14 33 \n", "5 5 2 10 9 \n", "6 - 4 30 26 \n", "7 14 - 26 24 \n", "8 - - - - \n", "9 10 5 - - \n", "10 - - - - " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "export_cluster_shift_counts = cluster_shift_counts.to_frame().reset_index()\n", "\n", "export_cluster_shift_counts = export_cluster_shift_counts.rename({'types': 'Movement Type'}, axis='columns')\n", "\n", "export_cluster_shift_counts['CDR Type'] = export_cluster_shift_counts.apply(\n", " lambda row: f\"CDR{row.cdr}\\\\text{row.chain_type.split('_')[0]}{{}}\",\n", " axis='columns',\n", ")\n", "\n", "export_cluster_shift_counts = export_cluster_shift_counts.pivot(index='Movement Type',\n", " columns='CDR Type',\n", " values='count')\n", "export_cluster_shift_counts = export_cluster_shift_counts.sort_values('Movement Type')\n", "\n", "export_cluster_shift_counts = export_cluster_shift_counts.replace(0, '-')\n", "export_cluster_shift_counts = export_cluster_shift_counts.sort_index()\n", "export_cluster_shift_counts.columns.name = None\n", "export_cluster_shift_counts = export_cluster_shift_counts.reset_index()\n", "\n", "export_cluster_shift_counts" ] }, { "cell_type": "markdown", "id": "cc673e49", "metadata": {}, "source": [ "## Conclusion\n", "\n", "The analysis here shows that for the most part, the CDR-1s and CDR-2s stay in their canonical forms between *apo* and *holo* states where as the CDR-3 loops have a variety of modes.\n", "As expected, it is more difficult to cluster the CDR-3 loops as they are more structurally diverse." ] } ], "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.10.14" } }, "nbformat": 4, "nbformat_minor": 5 }