{ "cells": [ { "source": [ "# PDB search\n", "\n", "This interactive Python notebook will guide you through various ways of programmatically accessing Protein Data Bank in Europe (PDBe) data using REST API\n", "\n", "The REST API is a programmatic way to obtain information from the PDB and EMDB. You can access details about:\n", "\n", "* sample\n", "* experiment\n", "* models\n", "* compounds\n", "* cross-references\n", "* publications\n", "* quality\n", "* assemblies\n", "and more...\n", "For more information, visit https://www.ebi.ac.uk/pdbe/pdbe-rest-api\n", "\n", "This notebook is a part of the training material series, and focuses on getting information from the PDBe search API. Retrieve this material and many more from [GitHub](https://github.com/PDBeurope/pdbe-api-training)\n", "\n", "## 1) Making imports and setting variables\n", "First, we import some packages that we will use, and set some variables.\n", "\n", "Note: Full list of valid URLs is available from https://www.ebi.ac.uk/pdbe/api/doc/" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 162, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/html": " \n " }, "metadata": {} }, { "output_type": "display_data", "data": { "text/html": " \n " }, "metadata": {} } ], "source": [ "import requests # used for getting data from a URL\n", "from pprint import pprint # pretty print\n", "import pandas as pd # used for turning results into mini databases\n", "from solrq import Q # used to turn result queries into the right format\n", "\n", "import cufflinks as cf\n", "import plotly.offline as py\n", "\n", "cf.go_offline() # required to use plotly offline (no account required).\n", "py.init_notebook_mode() # graphs charts inline (IPython).\n", "\n", "search_url = \"https://www.ebi.ac.uk/pdbe/search/pdb/select?\" # the rest of the URL used for PDBe's search API." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2) a function to get data from the search API\n", "Let's start with defining a function that can be used to GET data from the PDBe search API.\n" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [], "source": [ "def make_request(search_dict, number_of_rows=10):\n", " \"\"\"\n", " makes a get request to the PDBe API\n", " :param dict search_dict: the terms used to search\n", " :param number_of_rows: number or rows to return - limited to 10\n", " :return dict: response JSON\n", " \"\"\"\n", " if 'rows' not in search_dict:\n", " search_dict['rows'] = number_of_rows\n", " search_dict['wt'] = 'json'\n", " # pprint(search_dict)\n", " response = requests.post(search_url, data=search_dict)\n", "\n", " if response.status_code == 200:\n", " return response.json()\n", " else:\n", " print(\"[No data retrieved - %s] %s\" % (response.status_code, response.text))\n", "\n", " return {}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3) formatting the search terms \n", "This will allow us to use human readable search terms and this function will make a URL that the search API can handle." ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [], "source": [ "def format_search_terms(search_terms, filter_terms=None):\n", " ret = {'q': str(search_terms)}\n", " if filter_terms:\n", " fl = '{}'.format(','.join(filter_terms))\n", " ret['fl'] = fl\n", " return ret" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4) Getting useful data out of the search\n", "\n", "This function will run the search and will return a list of the results" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [], "source": [ "def run_search(search_terms, filter_terms=None, number_of_rows=100):\n", " search_term = format_search_terms(search_terms, filter_terms)\n", "\n", " response = make_request(search_term, number_of_rows)\n", " results = response.get('response', {}).get('docs', [])\n", " print('Number of results: {}'.format(len(results)))\n", " return results\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5) running a search\n", "\n", "Now we are ready to actually run a search against the PDB API for entries containing human Dihydrofolate reductase in the PDB. This will return a list of results - only 10 to start with.\n", "\n", "A list of search terms is available at:\n", "https://www.ebi.ac.uk/pdbe/api/doc/search.html\n", "\n", "This will return details of human Dihydrofolate reductase's in the PDB\n", "\n", "We are going to use the Python package \"solrq\" to make sure we get the search in the right format.\n", "\n", "Q(molecule_name=\"Dihydrofolate reductase\")\n", "\n", "Here we are searching for molecules named Dihydrofolate reductase.\n", "If we search for two terms i.e. molecule_name and organism_scientific_name then we will get molecules that match both search terms.\n", "\n", "We will return the number of results for two searches.\n", "\n", "The first one will hit the limit of 100. There are more than 100 Dihydrofolate reductase structures. \n", "We have to add the argument \"number_of_rows\" to a higher number, say 1000, to find all the examples. " ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "1st search\nNumber of results: 100\n" } ], "source": [ "print('1st search')\n", "search_terms = Q(molecule_name=\"Dihydrofolate reductase\")\n", "\n", "first_results = run_search(search_terms)\n" ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "1st search - more rows\nNumber of results: 405\n" } ], "source": [ "print('1st search - more rows')\n", "search_terms = Q(molecule_name=\"Dihydrofolate reductase\")\n", "\n", "first_results_more_rows = run_search(search_terms, number_of_rows=1000)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will add organism_name of Human to the query to limit the results to only return those that are structures of Human Dihydrofolate reductase." ] }, { "cell_type": "code", "execution_count": 168, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "2nd search\nNumber of results: 79\n" } ], "source": [ "print('2nd search')\n", "search_terms = Q(molecule_name=\"Dihydrofolate reductase\",organism_name=\"Human\")\n", "second_results = run_search(search_terms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How did we know which search terms to use?\n", "\n", "We will then look at the last result.\n", "We will print the data we have for the first result.\n", "\n", "This will be the first item of the list \"second_results\"\n", "i.e. second_results[0]\n", "\n", "We are using \"pprint\" (pretty print) rather than \"print\" to make the result easier to read.\n", "\n", "All of the \"keys\" on the left side of the results can be used as a search term." ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "tags": [ "outputPrepend" ] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "L',\n 'q_struct_asym_id': ['A'],\n 'q_structure_determination_method': ['MOLECULAR REPLACEMENT'],\n 'q_structure_solution_software': ['MOLREP'],\n 'q_superkingdom': ['Eukaryota'],\n 'q_tax_id': [9606],\n 'q_tax_query': [9606],\n 'q_title': 'Preferential Selection of Isomer Binding from Chiral Mixtures: '\n 'Alternate Binding Modes Observed for the E- and Z-isomers of a '\n 'Series of 5-Substituted 2,4-Diaminofuro[2,3-d]pyrimidines as '\n 'Ternary Complexes with NADPH and Human Dihydrofolate Reductase',\n 'q_uniprot': ['P00374 : DYR_HUMAN'],\n 'q_uniprot_accession': ['P00374', 'P00374-2'],\n 'q_uniprot_accession_best': ['P00374'],\n 'q_uniprot_best': ['P00374 : DYR_HUMAN'],\n 'q_uniprot_coverage': [0.99],\n 'q_uniprot_features': ['Protein has possible alternate isoforms',\n 'DHFR',\n 'Protein has possible natural variant ',\n 'Nucleotide binding - NADP'],\n 'q_uniprot_id': ['DYR_HUMAN', 'DYR_HUMAN'],\n 'q_uniprot_id_best': ['DYR_HUMAN'],\n 'q_uniprot_non_canonical': ['P00374-2 : DYR_HUMAN'],\n 'q_unp_count': 1,\n 'q_unp_nf90_accession': ['B0YJ76',\n 'A0A2K6C3Y8',\n 'S5WD14',\n 'S5VM81',\n 'P00374',\n 'A0A024RAQ3'],\n 'q_unp_nf90_id': ['B0YJ76_HUMAN',\n 'A0A2K6C3Y8_MACNE',\n 'S5WD14_SHISS',\n 'S5VM81_ECO57',\n 'DYR_HUMAN',\n 'A0A024RAQ3_HUMAN'],\n 'q_unp_nf90_organism': ['Homo sapiens (Human)',\n 'Macaca nemestrina (Pig-tailed macaque)',\n 'Shigella sonnei (strain Ss046)',\n 'Escherichia coli O157:H7',\n 'Homo sapiens (Human)',\n 'Homo sapiens (Human)'],\n 'q_unp_nf90_protein_name': ['Dihydrofolate reductase',\n 'DHFR domain-containing protein',\n 'Dihydrofolate reductase',\n 'Dihydrofolate reductase',\n 'Dihydrofolate reductase',\n 'Dihydrofolate reductase'],\n 'q_unp_nf90_tax_id': ['9606', '9545', '300269', '83334', '9606', '9606'],\n 'r_factor': 0.19536,\n 'r_free': 0.2456,\n 'r_work': [0.19278],\n 'rank': ['species',\n 'genus',\n 'subfamily',\n 'family',\n 'order',\n 'class',\n 'phylum',\n 'kingdom',\n 'superkingdom',\n 'species',\n 'genus',\n 'family',\n 'order',\n 'class',\n 'phylum',\n 'superkingdom'],\n 'reactant_id': ['NDP'],\n 'refinement_software': ['REFMAC'],\n 'release_date': '2010-12-01T01:00:00Z',\n 'release_year': 2010,\n 'resolution': 1.9,\n 'revision_date': '2017-11-08T01:00:00Z',\n 'revision_year': 2017,\n 'sample_preparation_method': ['Engineered'],\n 'seq_100_cluster_number': '24820',\n 'seq_100_cluster_rank': 39,\n 'seq_30_cluster_number': '162',\n 'seq_30_cluster_rank': 65,\n 'seq_40_cluster_number': '16985',\n 'seq_40_cluster_rank': 65,\n 'seq_50_cluster_number': '28892',\n 'seq_50_cluster_rank': 65,\n 'seq_70_cluster_number': '25856',\n 'seq_70_cluster_rank': 65,\n 'seq_90_cluster_number': '15408',\n 'seq_90_cluster_rank': 57,\n 'seq_95_cluster_number': '4071',\n 'seq_95_cluster_rank': 51,\n 'serial_crystal_experiment': ['N'],\n 'spacegroup': 'H 3',\n 'status': 'REL',\n 'struct_asym_id': ['A'],\n 'structure_determination_method': ['MOLECULAR REPLACEMENT'],\n 'structure_solution_software': ['MOLREP'],\n 'superkingdom': ['Eukaryota'],\n 't_abstracttext_unassigned': ['The crystal structures of six human '\n 'dihydrofolate reductase (hDHFR) ternary '\n 'complexes with NADPH and a series of mixed E/Z '\n 'isomers of 5-substituted '\n '5-[2-(2-methoxyphenyl)-prop-1-en-1-yl]furo[2,3-d]pyrimidine-2,4-diamines '\n 'substituted at the C9 position with propyl, '\n 'isopropyl, cyclopropyl, butyl, isobutyl and '\n 'sec-butyl (E2-E7, Z3) were determined and the '\n 'results were compared with the resolved E and '\n 'Z isomers of the C9-methyl parent compound. '\n 'The configuration of all of the inhibitors, '\n 'save one, was observed as the E isomer, in '\n 'which the binding of the furopyrimidine ring '\n 'is flipped such that the 4-amino group binds '\n 'in the 4-oxo site of folate. The Z3\\xa0isomer '\n 'of the C9-isopropyl analog has the normal '\n '2,4-diaminopyrimidine ring binding geometry, '\n 'with the furo oxygen near Glu30 and the '\n '4-amino group interacting near the cofactor '\n 'nicotinamide ring. Electron-density maps for '\n 'these structures revealed the binding of only '\n 'one isomer to hDHFR, despite the fact that '\n 'chiral mixtures (E:Z ratios of 2:1, 3:1 and '\n '3:2) of the inhibitors were incubated with '\n 'hDHFR prior to crystallization. Superposition '\n 'of the hDHFR complexes with E2 and Z3 shows '\n "that the 2'-methoxyphenyl ring of E2 is "\n 'perpendicular to that of Z3. The most potent '\n 'inhibitor in this series is the isopropyl '\n 'analog Z3 and the least potent is the isobutyl '\n 'analog E6, consistent with data that show that '\n 'the Z isomer makes the most favorable '\n 'interactions with the active-site residues. '\n 'The isobutyl moiety of E6 is observed in two '\n 'orientations and the resultant steric crowding '\n 'of the E6 analog is consistent with its weaker '\n 'activity. The alternative binding modes '\n 'observed for the furopyrimidine ring in these '\n 'E/Z isomers suggest that new templates can be '\n 'designed to probe these binding regions of the '\n 'DHFR active site.'],\n 't_all_compound_names': ['Nicotinamide-adenine dinucleotide',\n 'NDP',\n 'D2F : '\n '5-[(1E)-2-(2-methoxyphenyl)hex-1-en-1-yl]furo[2,3-d]pyrimidine-2,4-diamine',\n 'NDP : NADPH '\n 'DIHYDRO-NICOTINAMIDE-ADENINE-DINUCLEOTIDE PHOSPHATE',\n 'SO4 : SULFATE ION',\n 'NDP : Dihydronicotinamide-adenine dinucleotide '\n 'phosphate',\n 'NDP : Reduced nicotinamide adenine dinucleotide '\n 'phosphate',\n 'NDP : TPNH',\n 'SO4 : Sulfate',\n 'SO4 : Sulfate dianion',\n 'SO4 : Sulfate(2-)',\n 'SO4 : Sulfuric acid ion(2-)',\n 'D2F : '\n '5-[(1E)-2-(2-methoxyphenyl)hex-1-en-1-yl]furo[2,3-d]pyrimidine-2,4-diamine',\n 'SO4 : sulfate',\n 'D2F : '\n '5-[(E)-2-(2-methoxyphenyl)hex-1-enyl]furo[2,3-d]pyrimidine-2,4-diamine',\n 'NDP : '\n '[[(2R,3S,4R,5R)-5-(3-aminocarbonyl-4H-pyridin-1-yl)-3,4-dihydroxy-oxolan-2-yl]methoxy-hydroxy-phosphoryl] '\n '[(2R,3R,4R,5R)-5-(6-aminopurin-9-yl)-3-hydroxy-4-phosphonooxy-oxolan-2-yl]methyl '\n 'hydrogen phosphate'],\n 't_all_enzyme_names': ['Oxidoreductases',\n 'Acting on the CH-NH group of donors',\n 'With NAD(+) or NADP(+) as acceptor',\n 'Dihydrofolate reductase',\n '1.5.1.3 : Dihydrofolate reductase',\n '5,6,7,8-tetrahydrofolate:NADP(+) oxidoreductase'],\n 't_all_go_terms': ['cytoplasm',\n 'mitochondrion',\n 'cytosol',\n 'folic acid binding',\n 'oxidoreductase activity',\n 'NADPH binding',\n 'RNA binding',\n 'sequence-specific mRNA binding',\n 'mRNA binding',\n 'dihydrofolate reductase activity',\n 'NADP binding',\n 'methotrexate binding',\n 'translation repressor activity, mRNA regulatory element '\n 'binding',\n 'drug binding',\n 'one-carbon metabolic process',\n 'negative regulation of translation',\n 'folic acid metabolic process',\n 'response to methotrexate',\n 'regulation of removal of superoxide radicals',\n 'tetrahydrobiopterin biosynthetic process',\n 'tetrahydrofolate metabolic process',\n 'tetrahydrofolate biosynthetic process',\n 'oxidation-reduction process',\n 'regulation of transcription involved in G1/S transition '\n 'of mitotic cell cycle',\n 'positive regulation of nitric-oxide synthase activity',\n 'axon regeneration',\n 'dihydrofolate metabolic process'],\n 't_all_sequence_family': ['IPR001796 : Dihydrofolate reductase domain',\n 'IPR024072 : Dihydrofolate reductase-like domain '\n 'superfamily',\n 'PF00186 : DHFR_1',\n 'CL0387 : DHFred'],\n 't_all_structure_family': ['3-Layer(aba) Sandwich',\n 'Alpha Beta',\n '3.40.430.10',\n 'Dihydrofolate Reductase, subunit A',\n 'Dihydrofolate Reductase, subunit A'],\n 't_citation_authors': ['Cody V', 'Piraino J', 'Pace J', 'Li W', 'Gangjee A'],\n 't_citation_title': ['Preferential selection of isomer binding from chiral '\n 'mixtures: alternate binding modes observed for the E '\n 'and Z isomers of a series of 5-substituted '\n '2,4-diaminofuro[2,3-d]pyrimidines as ternary complexes '\n 'with NADPH and human dihydrofolate reductase.'],\n 't_entry_authors': ['Cody V'],\n 't_entry_info': ['POTASSIUM PHOSPHATE',\n 'AMMONIUM SULFATE',\n 'ETHANOL',\n 'MOSFLM',\n 'SCALA',\n 'Image plate',\n 'RIGAKU RAXIS IV',\n 'X-ray diffraction',\n 'REFMAC',\n 'MOLECULAR REPLACEMENT',\n 'MOLREP'],\n 't_entry_title': ['Preferential Selection of Isomer Binding from Chiral '\n 'Mixtures: Alternate Binding Modes Observed for the E- and '\n 'Z-isomers of a Series of 5-Substituted '\n '2,4-Diaminofuro[2,3-d]pyrimidines as Ternary Complexes '\n 'with NADPH and Human Dihydrofolate Reductase'],\n 't_expression_organism_name': ['Escherichia coli',\n 'Bacterium Coli',\n 'Enterococcus Coli',\n 'Bacterium 10a',\n 'Escherichia Coli',\n 'Escherichia Sp. 3_2_53faa',\n 'Escherichia/Shigella Coli',\n 'Ecolx',\n 'Bacterium E3',\n 'Bacterium Coli Commune',\n 'E. Coli',\n 'Bacillus Coli',\n 'Escherichia Sp. Mar',\n 'Escherichia coli',\n 'Escherichia',\n 'Enterobacteriaceae',\n 'Enterobacterales',\n 'Gammaproteobacteria',\n 'Proteobacteria',\n 'Bacteria'],\n 't_journal': ['Acta Crystallogr. D Biol. Crystallogr.'],\n 't_mesh_terms': ['Crystallography, X-Ray,Humans,Hydrophobic and Hydrophilic '\n 'Interactions,Models, Molecular,NADP,Protein Structure, '\n 'Tertiary,Pyrimidines,Stereoisomerism,Tetrahydrofolate '\n 'Dehydrogenase'],\n 't_molecule_info': ['protein structure',\n 'homo',\n 'monomer',\n 'Dihydrofolate reductase',\n 'Dihydrofolate reductase',\n 'protein structure',\n 'homo',\n 'monomer',\n 'DHFR',\n 'P00374',\n 'P00374-2',\n 'Protein has possible alternate isoforms',\n 'DHFR',\n 'Protein has possible natural variant ',\n 'Nucleotide binding - NADP',\n 'DYR_HUMAN',\n 'DYR_HUMAN'],\n 't_molecule_sequence': 'VGSLNCIVAVSQNMGIGKNGDLPWPPLRNEFRYFQRMTTTSSVEGKQNLVIMGKKTWFSIPEKNRPLKGRINLVLSRELKEPPQGAHFLSRSLDDALKLTEQPELANKVDMVWIVGGSSVYKEAMNHPGHLKLFVTRIMQDFESDTFFPEIDLEKYKLLPEYPGVLSDVQEEKGIKYKFEVYEKND',\n 't_organism_name': ['Homo sapiens',\n 'Man',\n 'Homo Sapiens (Human)',\n 'Human',\n 'Homo Sapiens',\n 'Homo sapiens',\n 'Homo',\n 'Homininae',\n 'Hominidae',\n 'Primates',\n 'Mammalia',\n 'Chordata',\n 'Metazoa',\n 'Eukaryota'],\n 'tax_id': [9606],\n 'tax_query': [9606],\n 'title': 'Preferential Selection of Isomer Binding from Chiral Mixtures: '\n 'Alternate Binding Modes Observed for the E- and Z-isomers of a '\n 'Series of 5-Substituted 2,4-Diaminofuro[2,3-d]pyrimidines as '\n 'Ternary Complexes with NADPH and Human Dihydrofolate Reductase',\n 'uniprot': ['P00374 : DYR_HUMAN'],\n 'uniprot_accession': ['P00374', 'P00374-2'],\n 'uniprot_accession_best': ['P00374'],\n 'uniprot_best': ['P00374 : DYR_HUMAN'],\n 'uniprot_coverage': [0.99],\n 'uniprot_features': ['Protein has possible alternate isoforms',\n 'DHFR',\n 'Protein has possible natural variant ',\n 'Nucleotide binding - NADP'],\n 'uniprot_id': ['DYR_HUMAN', 'DYR_HUMAN'],\n 'uniprot_id_best': ['DYR_HUMAN'],\n 'uniprot_non_canonical': ['P00374-2 : DYR_HUMAN'],\n 'unp_count': 1,\n 'unp_nf90_accession': ['B0YJ76',\n 'A0A2K6C3Y8',\n 'S5WD14',\n 'S5VM81',\n 'P00374',\n 'A0A024RAQ3'],\n 'unp_nf90_id': ['B0YJ76_HUMAN',\n 'A0A2K6C3Y8_MACNE',\n 'S5WD14_SHISS',\n 'S5VM81_ECO57',\n 'DYR_HUMAN',\n 'A0A024RAQ3_HUMAN'],\n 'unp_nf90_organism': ['Homo sapiens (Human)',\n 'Macaca nemestrina (Pig-tailed macaque)',\n 'Shigella sonnei (strain Ss046)',\n 'Escherichia coli O157:H7',\n 'Homo sapiens (Human)',\n 'Homo sapiens (Human)'],\n 'unp_nf90_protein_name': ['Dihydrofolate reductase',\n 'DHFR domain-containing protein',\n 'Dihydrofolate reductase',\n 'Dihydrofolate reductase',\n 'Dihydrofolate reductase',\n 'Dihydrofolate reductase'],\n 'unp_nf90_tax_id': ['9606', '9545', '300269', '83334', '9606', '9606']}\n" } ], "source": [ "pprint(second_results[0])" ] }, { "cell_type": "markdown", "source": [ "A full list of available search terms is available using the following command." ], "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 170, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "There are 448 available search terms\ndict_keys(['abstracttext_unassigned', 't_abstracttext_unassigned', 'q_abstracttext_unassigned', 'all_assembly_composition', 't_molecule_info', 'q_all_assembly_composition', 'all_assembly_form', 'q_all_assembly_form', 'all_assembly_id', 'q_all_assembly_id', 'all_assembly_mol_wt', 'q_all_assembly_mol_wt', 'all_assembly_type', 'q_all_assembly_type', 'all_authors', 'q_all_authors', 'all_molecule_names', 'q_all_molecule_names', 'all_num_interacting_entity_id', 'q_all_num_interacting_entity_id', 'assembly_composition', 'q_assembly_composition', 'assembly_form', 'q_assembly_form', 'assembly_id', 'q_assembly_id', 'assembly_mol_wt', 'q_assembly_mol_wt', 'assembly_num_component', 'q_assembly_num_component', 'assembly_type', 'q_assembly_type', 'beam_source_name', 'q_beam_source_name', 'biological_cell_component', 'all_go_terms', 'q_all_go_terms', 't_all_go_terms', 'q_biological_cell_component', 'biological_function', 'q_biological_function', 'biological_process', 'q_biological_process', 'bound_compound_id', 'q_bound_compound_id', 'bound_compound_name', 'q_bound_compound_name', 'bound_compound_synonym', 'q_bound_compound_synonym', 'bound_compound_systematic_name', 'q_bound_compound_systematic_name', 'bound_compound_weight', 'q_bound_compound_weight', 'cath_architecture', 'all_structure_family', 'q_all_structure_family', 't_all_structure_family', 'q_cath_architecture', 'cath_class', 'q_cath_class', 'cath_code', 'q_cath_code', 'cath_homologous_superfamily', 'q_cath_homologous_superfamily', 'cath_topology', 'q_cath_topology', 'cell_a', 'q_cell_a', 'cell_alpha', 'q_cell_alpha', 'cell_b', 'q_cell_b', 'cell_beta', 'q_cell_beta', 'cell_c', 'q_cell_c', 'cell_gamma', 'q_cell_gamma', 'chain_id', 'q_chain_id', 'citation_authors', 't_citation_authors', 'q_citation_authors', 'citation_doi', 'q_citation_doi', 'citation_title', 't_citation_title', 'q_citation_title', 'citation_year', 'q_citation_year', 'cofactor_class', 't_all_compound_names', 'q_cofactor_class', 'cofactor_id', 'q_cofactor_id', 'compound_id', 'q_compound_id', 'compound_name', 'all_compound_names', 'q_all_compound_names', 'q_compound_name', 'compound_synonym', 'q_compound_synonym', 'compound_systematic_name', 'q_compound_systematic_name', 'compound_weight', 'q_compound_weight', 'crystallisation_cond', 'q_crystallisation_cond', 'crystallisation_method', 'q_crystallisation_method', 'crystallisation_ph', 'q_crystallisation_ph', 'crystallisation_reservoir', 't_entry_info', 'q_crystallisation_reservoir', 'crystallisation_temperature', 'q_crystallisation_temperature', 'data_collection_date', 'q_data_collection_date', 'data_collection_year', 'q_data_collection_year', 'data_quality', 'q_data_quality', 'data_reduction_software', 'q_data_reduction_software', 'data_scaling_software', 'q_data_scaling_software', 'deposition_date', 'q_deposition_date', 'deposition_site', 'q_deposition_site', 'deposition_year', 'q_deposition_year', 'detector', 'q_detector', 'detector_type', 'q_detector_type', 'diffraction_protocol', 'q_diffraction_protocol', 'diffraction_source_type', 'q_diffraction_source_type', 'diffraction_wavelengths', 'q_diffraction_wavelengths', 'ec_hierarchy_name', 'all_enzyme_names', 'q_all_enzyme_names', 't_all_enzyme_names', 'q_ec_hierarchy_name', 'ec_number', 'q_ec_number', 'entity_id', 'q_entity_id', 'entity_weight', 'q_entity_weight', 'entry_author_list', 'q_entry_author_list', 'entry_authors', 't_entry_authors', 'q_entry_authors', 'entry_entity', 'entry_lig_entity', 'q_entry_lig_entity', 'entry_organism_scientific_name', 'entry_uniprot', 'q_entry_uniprot', 'entry_uniprot_accession', 'q_entry_uniprot_accession', 'entry_uniprot_id', 'q_entry_uniprot_id', 'enzyme_name', 'q_enzyme_name', 'enzyme_num_name', 'q_enzyme_num_name', 'enzyme_systematic_name', 'q_enzyme_systematic_name', 'experiment_data_available', 'q_experiment_data_available', 'experimental_method', 'q_experimental_method', 'expression_host_sci_name', 'expression_organism_name', 'q_expression_organism_name', 't_expression_organism_name', 'q_expression_host_sci_name', 'expression_host_synonyms', 'q_expression_host_synonyms', 'expression_host_tax_id', 'q_expression_host_tax_id', 'gene_name', 'q_gene_name', 'genus', 'q_genus', 'go_id', 'q_go_id', 'go_mapping', 'q_go_mapping', 'has_bound_molecule', 'q_has_bound_molecule', 'has_carb_polymer', 'q_has_carb_polymer', 'has_cofactor', 'q_has_cofactor', 'has_modified_residues', 'q_has_modified_residues', 'has_reactant', 'q_has_reactant', 'homologus_pdb_entity_id', 'q_homologus_pdb_entity_id', 'int_lig_entity', 'q_int_lig_entity', 'interacting_ligands', 'q_interacting_ligands', 'interpro', 'all_sequence_family', 'q_all_sequence_family', 't_all_sequence_family', 'q_interpro', 'interpro_accession', 'q_interpro_accession', 'interpro_dom', 'q_interpro_dom', 'interpro_dom_acc', 'q_interpro_dom_acc', 'interpro_dom_name', 'q_interpro_dom_name', 'interpro_name', 'q_interpro_name', 'interpro_supfam', 'q_interpro_supfam', 'interpro_supfam_acc', 'q_interpro_supfam_acc', 'interpro_supfam_name', 'q_interpro_supfam_name', 'inv_overall_quality', 'q_inv_overall_quality', 'journal', 't_journal', 'q_journal', 'journal_page', 'q_journal_page', 'journal_volume', 'q_journal_volume', 'matthews_coefficient', 'q_matthews_coefficient', 'max_observed_residues', 'q_max_observed_residues', 'mesh_terms', 't_mesh_terms', 'q_mesh_terms', 'model_quality', 'q_model_quality', 'modified_residue_flag', 'q_modified_residue_flag', 'molecule_name', 'q_molecule_name', 'molecule_sequence', 'q_molecule_sequence', 't_molecule_sequence', 'molecule_synonym', 'q_molecule_synonym', 'molecule_type', 'q_molecule_type', 'mutation', 'q_mutation', 'nigli_cell_a', 'q_nigli_cell_a', 'nigli_cell_alpha', 'q_nigli_cell_alpha', 'nigli_cell_b', 'q_nigli_cell_b', 'nigli_cell_beta', 'q_nigli_cell_beta', 'nigli_cell_c', 'q_nigli_cell_c', 'nigli_cell_gamma', 'q_nigli_cell_gamma', 'nigli_cell_symmetry', 'q_nigli_cell_symmetry', 'num_interacting_entity_id', 'q_num_interacting_entity_id', 'num_r_free_reflections', 'q_num_r_free_reflections', 'number_of_bound_entities', 'q_number_of_bound_entities', 'number_of_bound_molecules', 'q_number_of_bound_molecules', 'number_of_copies', 'q_number_of_copies', 'number_of_models', 'q_number_of_models', 'number_of_polymer_entities', 'q_number_of_polymer_entities', 'number_of_polymer_residues', 'q_number_of_polymer_residues', 'number_of_polymers', 'q_number_of_polymers', 'number_of_protein_chains', 'q_number_of_protein_chains', 'organism_scientific_name', 'organism_name', 'q_organism_name', 't_organism_name', 'q_organism_scientific_name', 'organism_synonyms', 'q_organism_synonyms', 'overall_quality', 'q_overall_quality', 'pdb_accession', 'q_pdb_accession', 'pdb_format_compatible', 'q_pdb_format_compatible', 'pdb_id', 'q_pdb_id', 'percent_solvent', 'q_percent_solvent', 'pfam', 'q_pfam', 'pfam_accession', 'q_pfam_accession', 'pfam_clan', 'q_pfam_clan', 'pfam_clan_name', 'q_pfam_clan_name', 'pfam_description', 'q_pfam_description', 'pfam_name', 'q_pfam_name', 'pivot_resolution', 'q_pivot_resolution', 'polymer_length', 'q_polymer_length', 'prefered_assembly_id', 'q_prefered_assembly_id', 'primary_wavelength', 'q_primary_wavelength', 'processing_site', 'q_processing_site', 'pubmed_author_list', 'q_pubmed_author_list', 'pubmed_authors', 'q_pubmed_authors', 'pubmed_id', 'q_pubmed_id', 'r_factor', 'q_r_factor', 'r_free', 'q_r_free', 'r_work', 'q_r_work', 'rank', 'q_rank', 'reactant_id', 'q_reactant_id', 'refinement_software', 'q_refinement_software', 'release_date', 'q_release_date', 'release_year', 'q_release_year', 'resolution', 'q_resolution', 'revision_date', 'q_revision_date', 'revision_year', 'q_revision_year', 'sample_preparation_method', 'q_sample_preparation_method', 'seq_100_cluster_number', 'q_seq_100_cluster_number', 'seq_100_cluster_rank', 'q_seq_100_cluster_rank', 'seq_30_cluster_number', 'q_seq_30_cluster_number', 'seq_30_cluster_rank', 'q_seq_30_cluster_rank', 'seq_40_cluster_number', 'q_seq_40_cluster_number', 'seq_40_cluster_rank', 'q_seq_40_cluster_rank', 'seq_50_cluster_number', 'q_seq_50_cluster_number', 'seq_50_cluster_rank', 'q_seq_50_cluster_rank', 'seq_70_cluster_number', 'q_seq_70_cluster_number', 'seq_70_cluster_rank', 'q_seq_70_cluster_rank', 'seq_90_cluster_number', 'q_seq_90_cluster_number', 'seq_90_cluster_rank', 'q_seq_90_cluster_rank', 'seq_95_cluster_number', 'q_seq_95_cluster_number', 'seq_95_cluster_rank', 'q_seq_95_cluster_rank', 'serial_crystal_experiment', 'q_serial_crystal_experiment', 'spacegroup', 'q_spacegroup', 'status', 'q_status', 'struct_asym_id', 'q_struct_asym_id', 'structure_determination_method', 'q_structure_determination_method', 'structure_solution_software', 'q_structure_solution_software', 'superkingdom', 'q_superkingdom', 'tax_id', 'q_tax_id', 'tax_query', 'q_tax_query', 'title', 't_entry_title', 'q_title', 'uniprot', 'q_uniprot', 'uniprot_accession', 'q_uniprot_accession', 'uniprot_accession_best', 'q_uniprot_accession_best', 'uniprot_best', 'q_uniprot_best', 'uniprot_coverage', 'q_uniprot_coverage', 'uniprot_features', 'q_uniprot_features', 'uniprot_id', 'q_uniprot_id', 'uniprot_id_best', 'q_uniprot_id_best', 'uniprot_non_canonical', 'q_uniprot_non_canonical', 'unp_nf90_accession', 'q_unp_nf90_accession', 'unp_nf90_id', 'q_unp_nf90_id', 'unp_nf90_organism', 'q_unp_nf90_organism', 'unp_nf90_protein_name', 'q_unp_nf90_protein_name', 'unp_nf90_tax_id', 'q_unp_nf90_tax_id', '_version_', 'q_unp_count', 'unp_count'])\n217\n" } ], "source": [ "print('There are {} available search terms'.format(len(second_results[0].keys())))\n", "print(second_results[0].keys())\n", "keys_without_q = [q for q in second_results[0].keys() if not (q.startswith('q_') or (q.startswith('t_')))]\n", "print(len(keys_without_q))" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" }, "tags": [] } }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see we get lots of data back about the individual molecule we have searched for and the PDB entries in which it is contained. \n", "\n", "We can get the PDB ID and experimental method for this first row as follows.\n", "Note that experimental method is a list" ] }, { "cell_type": "code", "execution_count": 171, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "3nxv\n['X-ray diffraction']\n" } ], "source": [ "print(second_results[0].get('pdb_id'))\n", "print(second_results[0].get('experimental_method'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can restrict the results to only the information we want using a filter so its easier to see the information we want." ] }, { "cell_type": "code", "execution_count": 172, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "3rd search\nNumber of results: 79\n[{'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nxv'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hsu'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5ht4'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5ht5'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hqz'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hvb'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hui'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hpb'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4m6k'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4qjc'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4keb'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4m6j'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4g95'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4qhv'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4kfj'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4m6l'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4kak'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4kbn'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4kd7'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hsr'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1kms'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1kmv'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1drf'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1pd9'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1dhf'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1hfr'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1hfq'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '4ddr'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hve'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '5hqy'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1dls'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1dlr'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1hfp'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1ohk'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1pd8'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1mvs'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1ohj'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1s3w'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3f8y'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3ghc'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '2w3a'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '2w3m'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3s7a'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3f8z'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3s3v'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nzd'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nxo'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3n0h'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1u71'},\n {'experimental_method': ['Solution NMR'], 'pdb_id': '1yho'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1mvt'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1boz'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1s3v'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1pdb'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1u72'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '1s3u'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '2dhf'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '2c2t'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '2c2s'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '2w3b'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3ghw'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3eig'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3ghv'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3gi2'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nxy'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3oaf'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3fs6'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nxt'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3ntz'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nxr'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nxx'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3l3r'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3gyf'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3f91'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '3nu0'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '6de4'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '6dav'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '6a7e'},\n {'experimental_method': ['X-ray diffraction'], 'pdb_id': '6a7c'}]\n" } ], "source": [ "print('3rd search')\n", "search_terms = Q(molecule_name=\"Dihydrofolate reductase\",organism_name=\"Human\")\n", "filter_terms = ['pdb_id', 'experimental_method']\n", "third_results = run_search(search_terms, filter_terms)\n", "pprint(third_results)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6) Analysing and plotting the results\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to use a Python package called Pandas to help us sort and visualise the results\n", "\n", "\n", "First we have to do a bit of housekeeping, some of the results are lists (a PDB entry can have more than one experimental method or organism for example) so we need to change them into strings so we can use them in a graph" ] }, { "cell_type": "code", "execution_count": 173, "metadata": {}, "outputs": [], "source": [ "def change_lists_to_strings(results):\n", " \"\"\"\n", " input - list of results from search\n", " output - list of results with lists changed into strings\n", " \"\"\"\n", " for row in results:\n", " for data in row:\n", " if type(row[data]) == list:\n", " # if there are any numbers in the list change them into strings\n", " row[data] = [str(a) for a in row[data]]\n", " # unique and sort the list and then change the list into a string\n", " row[data] = ','.join(sorted(list(set(row[data]))))\n", " \n", " return results" ] }, { "cell_type": "code", "execution_count": 174, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "[{'experimental_method': 'X-ray diffraction', 'pdb_id': '3nxv'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hsu'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5ht4'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5ht5'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hqz'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hvb'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hui'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hpb'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4m6k'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4qjc'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4keb'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4m6j'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4g95'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4qhv'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4kfj'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4m6l'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4kak'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4kbn'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4kd7'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hsr'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1kms'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1kmv'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1drf'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1pd9'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1dhf'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1hfr'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1hfq'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '4ddr'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hve'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '5hqy'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1dls'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1dlr'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1hfp'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1ohk'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1pd8'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1mvs'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1ohj'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1s3w'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3f8y'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3ghc'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '2w3a'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '2w3m'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3s7a'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3f8z'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3s3v'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3nzd'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3nxo'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3n0h'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1u71'},\n {'experimental_method': 'Solution NMR', 'pdb_id': '1yho'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1mvt'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1boz'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1s3v'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1pdb'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1u72'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '1s3u'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '2dhf'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '2c2t'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '2c2s'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '2w3b'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3ghw'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3eig'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3ghv'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3gi2'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3nxy'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3oaf'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3fs6'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3nxt'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3ntz'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3nxr'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3nxx'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3l3r'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3gyf'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3f91'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '3nu0'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '6de4'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '6dav'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '6a7e'},\n {'experimental_method': 'X-ray diffraction', 'pdb_id': '6a7c'}]\n" } ], "source": [ "results = change_lists_to_strings(third_results)\n", "pprint(results)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the only thing that changed is ['X-ray diffraction'] is now 'X-ray diffraction'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we wanted to know the experimental methods used to determine structures of Human Dihydrofolate reductase we could loop through the results and count how many entries use each experimental method. \n", "\n", "We can use a Python package called Pandas to do this for us. \n", "It changes the results into a mini database - called a DataFrame. \n" ] }, { "cell_type": "code", "execution_count": 175, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": " experimental_method pdb_id\n0 X-ray diffraction 3nxv\n1 X-ray diffraction 5hsu\n2 X-ray diffraction 5ht4\n3 X-ray diffraction 5ht5\n4 X-ray diffraction 5hqz\n.. ... ...\n74 X-ray diffraction 3nu0\n75 X-ray diffraction 6de4\n76 X-ray diffraction 6dav\n77 X-ray diffraction 6a7e\n78 X-ray diffraction 6a7c\n\n[79 rows x 2 columns]\n" } ], "source": [ "def pandas_dataset(list_of_results):\n", " results = change_lists_to_strings(list_of_results) # we have added our function to change lists to strings\n", " df = pd.DataFrame(results)\n", "\n", " return df\n", "\n", "df = pandas_dataset(list_of_results=results)\n", "print(df)\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the this to count how many PDB codes there are for each experimental method\n", "This groups PDB IDs by experimental method and then counts the number of unique PDB IDs per method." ] }, { "cell_type": "code", "execution_count": 176, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "experimental_method\nSolution NMR 1\nX-ray diffraction 78\nName: pdb_id, dtype: int64\n" } ], "source": [ "ds = df.groupby('experimental_method')['pdb_id'].nunique()\n", "print(ds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can find which experimental method has the greatest (max) or lowest (min) number of entries." ] }, { "cell_type": "code", "execution_count": 177, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "78\n1\n" } ], "source": [ "dt = ds.max()\n", "print(dt)\n", "dt = ds.min()\n", "print(dt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can sort the results so its in decending order and then the first value is the experimental method with the highest number of results" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "'X-ray diffraction'" }, "metadata": {}, "execution_count": 178 } ], "source": [ "ds.sort_values(ascending=False).index[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or sort ascending so the experimental method with the lowest number of results is given" ] }, { "cell_type": "code", "execution_count": 179, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "'Solution NMR'" }, "metadata": {}, "execution_count": 179 } ], "source": [ "ds.sort_values(ascending=True).index[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or we can then very easily plot these results as a bar chart" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgba(255, 153, 51, 0.6)", "line": { "color": "rgba(255, 153, 51, 1.0)", "width": 1 } }, "name": "pdb_id", "orientation": "v", "text": "", "type": "bar", "x": [ "Solution NMR", "X-ray diffraction" ], "y": [ 1, 78 ] } ], "layout": { "legend": { "bgcolor": "#F5F6F9", "font": { "color": "#4D5663" } }, "paper_bgcolor": "#F5F6F9", "plot_bgcolor": "#F5F6F9", "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "font": { "color": "#4D5663" } }, "xaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" }, "yaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" } } }, "text/html": "
" }, "metadata": {} } ], "source": [ "ds.iplot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will make this into two functions so we can use them again" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [], "source": [ "def pandas_count(list_of_results, column_to_group_by):\n", " df = pandas_dataset(list_of_results)\n", " ds = df.groupby(column_to_group_by)['pdb_id'].nunique()\n", " return ds\n", " \n", "def pandas_min_max(list_of_results, column_to_group_by, get_min=True):\n", " df = pandas_dataset(list_of_results)\n", " if get_min:\n", " ds = df.groupby(column_to_group_by)['pdb_id'].min()\n", " else:\n", " ds = df.groupby(column_to_group_by)['pdb_id'].max()\n", " return ds\n", " \n", "def pandas_plot(list_of_results, column_to_group_by, graph_type='bar'):\n", " ds = pandas_count(list_of_results=list_of_results, column_to_group_by=column_to_group_by)\n", " ds.iplot(kind=graph_type)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One for counting the results" ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "experimental_method\nSolution NMR 1\nX-ray diffraction 78\nName: pdb_id, dtype: int64" }, "metadata": {}, "execution_count": 182 } ], "source": [ "pandas_count(list_of_results=results, column_to_group_by='experimental_method')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One for getting min or max" ] }, { "cell_type": "code", "execution_count": 183, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "updated search\nNumber of results: 79\n" }, { "output_type": "execute_result", "data": { "text/plain": "resolution\n1.050 1kmv\n1.090 1kms\n1.201 4m6j\n1.210 5hsr\n1.230 3fs6\n1.240 3ghw\n1.270 2w3b\n1.300 3ghc\n1.350 3ntz\n1.396 4m6k\n1.400 2c2s\n1.450 3f8y\n1.460 5hqy\n1.500 2c2t\n1.530 3gi2\n1.550 6dav\n1.600 2w3m\n1.610 4qhv\n1.620 4qjc\n1.650 5hpb\n1.700 3eig\n1.760 4kfj\n1.800 1mvt\n1.840 4kbn\n1.850 6a7e\n1.900 1mvs\n1.920 3n0h\n2.000 1drf\n2.010 3f8z\n2.050 4ddr\n2.060 6a7c\n2.100 1boz\n2.200 1pd9\n2.300 1dhf\n2.411 6de4\n2.500 1ohj\n2.715 4kd7\nName: pdb_id, dtype: object" }, "metadata": {}, "execution_count": 183 } ], "source": [ "print('updated search')\n", "search_terms = Q(molecule_name=\"Dihydrofolate reductase\",organism_name=\"Human\")\n", "filter_terms = ['pdb_id', 'resolution']\n", "new_results = run_search(search_terms, filter_terms)\n", "pandas_min_max(list_of_results=new_results, column_to_group_by='resolution')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and one for plotting the results" ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgba(255, 153, 51, 0.6)", "line": { "color": "rgba(255, 153, 51, 1.0)", "width": 1 } }, "name": "pdb_id", "orientation": "v", "text": "", "type": "bar", "x": [ "Solution NMR", "X-ray diffraction" ], "y": [ 1, 78 ] } ], "layout": { "legend": { "bgcolor": "#F5F6F9", "font": { "color": "#4D5663" } }, "paper_bgcolor": "#F5F6F9", "plot_bgcolor": "#F5F6F9", "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "font": { "color": "#4D5663" } }, "xaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" }, "yaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" } } }, "text/html": "
" }, "metadata": {} } ], "source": [ "pandas_plot(list_of_results=results, column_to_group_by='experimental_method')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remember this only searched through the first 10 results.\n", "To increase the number of entries we have to run the search again, this time setting number_of_rows to a number in the function run_search. " ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Number of results: 79\n" } ], "source": [ "search_terms = Q(molecule_name=\"Dihydrofolate reductase\",organism_name=\"Human\")\n", "results = run_search(search_terms, number_of_rows=10000)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we can count the results using our pandas function above" ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "experimental_method\nSolution NMR 1\nX-ray diffraction 78\nName: pdb_id, dtype: int64" }, "metadata": {}, "execution_count": 186 } ], "source": [ "pandas_count(list_of_results=results, column_to_group_by='experimental_method')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Changing the result so it groups by release year of the PDB entries. " ] }, { "cell_type": "code", "execution_count": 187, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "release_year\n1990 2\n1992 1\n1995 2\n1998 6\n2002 2\n2003 5\n2004 3\n2005 3\n2007 2\n2009 13\n2010 7\n2011 7\n2012 1\n2013 8\n2014 1\n2015 2\n2017 10\n2018 2\n2019 2\nName: pdb_id, dtype: int64" }, "metadata": {}, "execution_count": 187 } ], "source": [ "pandas_count(list_of_results=results, column_to_group_by='release_year')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And then plot the number of entries released per year" ] }, { "cell_type": "code", "execution_count": 188, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgba(255, 153, 51, 0.6)", "line": { "color": "rgba(255, 153, 51, 1.0)", "width": 1 } }, "name": "pdb_id", "orientation": "v", "text": "", "type": "bar", "x": [ 1990, 1992, 1995, 1998, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2018, 2019 ], "y": [ 2, 1, 2, 6, 2, 5, 3, 3, 2, 13, 7, 7, 1, 8, 1, 2, 10, 2, 2 ] } ], "layout": { "legend": { "bgcolor": "#F5F6F9", "font": { "color": "#4D5663" } }, "paper_bgcolor": "#F5F6F9", "plot_bgcolor": "#F5F6F9", "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "font": { "color": "#4D5663" } }, "xaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" }, "yaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" } } }, "text/html": "
" }, "metadata": {} } ], "source": [ "pandas_plot(list_of_results=results, column_to_group_by='release_year')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can make this into a line graph " ] }, { "cell_type": "code", "execution_count": 189, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "line": { "color": "rgba(255, 153, 51, 1.0)", "dash": "solid", "shape": "linear", "width": 1.3 }, "mode": "lines", "name": "pdb_id", "text": "", "type": "scatter", "x": [ 1990, 1992, 1995, 1998, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2018, 2019 ], "y": [ 2, 1, 2, 6, 2, 5, 3, 3, 2, 13, 7, 7, 1, 8, 1, 2, 10, 2, 2 ] } ], "layout": { "legend": { "bgcolor": "#F5F6F9", "font": { "color": "#4D5663" } }, "paper_bgcolor": "#F5F6F9", "plot_bgcolor": "#F5F6F9", "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "font": { "color": "#4D5663" } }, "xaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" }, "yaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" } } }, "text/html": "
" }, "metadata": {} } ], "source": [ "pandas_plot(list_of_results=results, column_to_group_by='release_year', graph_type='line')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try changing the term you want to search for and see if you get interesting results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7) searching for two terms at once\n", "\n", "It would be interesting to see how many PDB entries were solved by each experimental method per year. \n", "\n", "we can use the tag \"release_year\" to get the year of release of each entry\n", "\n", "We have to define a new function to group entries by two terms.\n", "\n", "When we do the search we have to filter the results by the terms we want to plot otherwise it takes too long to run. " ] }, { "cell_type": "code", "execution_count": 190, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Number of results: 1975\n" } ], "source": [ "search_terms = Q(all_enzyme_names=\"Lysozyme\")\n", "filter_results = ['beam_source_name','release_year', 'pdb_id']\n", "results = run_search(search_terms, filter_results, number_of_rows=10000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This will take a while as it will return lots of results. \n", "We can then define a function to group the results by two terms. " ] }, { "cell_type": "code", "execution_count": 191, "metadata": {}, "outputs": [], "source": [ "def pandas_plot_multi_groupby(results, first_column_to_group_by, second_column_to_group_by, y_axis='pdb_id', graph_type='line'):\n", " \n", " df = pandas_dataset(results)\n", " new_df = df.groupby([first_column_to_group_by, second_column_to_group_by])\n", " ds = new_df.count().unstack().reset_index(first_column_to_group_by)\n", " ds.plot(x=first_column_to_group_by, y=y_axis, kind=graph_type).legend(bbox_to_anchor=(1,1))\n", " \n", "def pandas_plot_multi_groupby_min(results, first_column_to_group_by, second_column_to_group_by, graph_type='line', use_min=False, use_max=False):\n", " \n", " df = pandas_dataset(results)\n", " new_df = df.groupby([first_column_to_group_by])[second_column_to_group_by]\n", " ds = None\n", " if use_min:\n", " ds = new_df.min()\n", " elif use_max:\n", " ds = new_df.max()\n", " else:\n", " print('specify either use_min or use_max')\n", " return None\n", " ds.plot(x=first_column_to_group_by, y=second_column_to_group_by, kind=graph_type)\n", "\n", "def pandas_box_plot(results, first_column_to_group_by, second_column_to_group_by):\n", " df = pandas_dataset(results)\n", " df.boxplot(column=second_column_to_group_by,by=first_column_to_group_by)" ] }, { "cell_type": "code", "execution_count": 192, "metadata": { "tags": [] }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "<Figure size 432x288 with 1 Axes>", "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "pandas_plot_multi_groupby(results, 'release_year', 'beam_source_name')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This shows us that rotating anodes were used as the major source of radiation until around 2004 when Synchrotron's overtook as the major source of radiation. \n", "\n", "Try editing the queries to plot interesting trends within the PDB" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Questions to answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1) Electron Microscopy is going through a revolution. Is this leading to a growth in Electron Microscopy PDB entries?" ] }, { "cell_type": "code", "execution_count": 193, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Number of results: 15794\n" }, { "output_type": "display_data", "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgba(255, 153, 51, 0.6)", "line": { "color": "rgba(255, 153, 51, 1.0)", "width": 1 } }, "name": "pdb_id", "orientation": "v", "text": "", "type": "bar", "x": [ "AB INITIO PHASING", "FOURIER SYNTHESIS", "MAD", "MIR", "MIRAS", "MOLECULAR REPLACEMENT", "SAD", "SAD, MOLECULAR REPLACEMENT", "SIR", "SIRAS" ], "y": [ 25, 647, 53, 4, 6, 7641, 495, 1, 3, 26 ] } ], "layout": { "legend": { "bgcolor": "#F5F6F9", "font": { "color": "#4D5663" } }, "paper_bgcolor": "#F5F6F9", "plot_bgcolor": "#F5F6F9", "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "font": { "color": "#4D5663" } }, "xaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" }, "yaxis": { "gridcolor": "#E1E5ED", "showgrid": true, "tickfont": { "color": "#4D5663" }, "title": { "font": { "color": "#4D5663" }, "text": "" }, "zerolinecolor": "#E1E5ED" } } }, "text/html": "
" }, "metadata": {} } ], "source": [ "search_terms = Q(experimental_method='X-ray diffraction',release_year='2018')\n", "filter_results = ['structure_determination_method','release_year', 'pdb_id']\n", "results = run_search(search_terms, filter_results, number_of_rows=1000000)\n", "pandas_plot(list_of_results=results, column_to_group_by='structure_determination_method')" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" }, "tags": [] } }, { "cell_type": "markdown", "metadata": {}, "source": [ "2) New refinement programs have got better and there are more methods to validate the quality of strucures in the PDB.\n", "Have structures got better over time?\n", "We can use \"overall_quality\" to judge this\n", "This could be plotted as a groupby or a box plot. " ] }, { "cell_type": "code", "execution_count": 194, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Number of results: 61831\n" }, { "output_type": "display_data", "data": { "text/plain": "<Figure size 432x288 with 1 Axes>", "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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xMTNza3++LSedv3a4MGDa/bv35++YcOGbn/4wx9Cfvzxx9J777230QRr+fLlgT179qzbsGHDLxaLBe7u7sOaE4NSCl999dXJIUOG1NiX79y50/NS3++V/Lao/XFEYyKiVtiUkoPfhHVHsG+zz02pBUaOHFmRnJzsdejQIVfA2m46NTXVdfDgwdUXLlxw3r59uwcAFBUV6erq6uDj42MuLy9v8v+4m2++uXzdunV+AJCamuqak5PjMnjw4Oorjeu2224rf/LJJ3MeeeSRJpuwjB49ujQxMbFHXZ21BZJ98yEbf39/s4+Pj/mHH37wAoBVq1b5Dx8+vNxsNiMjI8Nl0qRJZX/961/PlZeX60tKSvQJCQmlK1eurO/EkpeXpx8xYkTFnj17vHNycpxsTZpGjhxZDlg72tran3/88cf+cXFxZQDg4eGhEhISShYtWtR39uzZ9U1mFi5cGLJmzRpfNMO8efPyExMTAwFg2LBh9ftw586dPrm5ufry8nLZvHmzb0JCQvml6rn11lvLN2/e7FteXi5FRUW6LVu21G9/xYoVAStWrAgAgC+++MInPz/faeHChQWvvfZazubNm3337dvnFh4eXme7k/Hcc89d9IjCoqIivbu7u8XPz8985swZp23bttU/TScsLKwuMDCw7s033wyaO3dufsN1S0pKdIWFhfrp06eX/O1vfztz9OhRDwCIiYmp+Pvf/94dsPbniI2Nvegz9unTp2bv3r2eALB+/fr6PgCXOkabU29TMjMznb29vS0LFiwoXLRo0fmDBw96NPU7KSkp0QcFBdXp9Xq89957/rbkpVu3buby8vL647RhrKNGjSp98803A21P3/q///u/Fv8DGB8fX7Fnzx7vvLw8fV1dHTZu3HhRPwlqH0wKiIha6HhuGY7llmHi4OCODqXTs/UpsP0tWLDgV4+nDg4ONiUmJmbed9991xkMBmNsbGxUWlqam5ubm1q/fn3Gk08+2TcyMtI4cuRIQ2Vlpe72228vO378uLutY2TD7T333HMXLBaLGAwG4/Tp0/snJiZmuru7X/FT7XQ6Hf785z/nBgUFmZpa5umnn87r3bt3bVRUVHRkZKRx1apVfo0t99FHH/2yePHi3gaDwZiamur+2muvZZtMJnnggQf6GQwG48CBA41z5sy50KNHD/Orr76aU1xcrI+IiIiOjIw0bt682Ts0NLRu6dKl5xISEgwDBgyIHjJkSMWDDz5YDADu7u6WvXv3ekZEREQnJSV5v/rqq7bHimPWrFmFIoI777yz1FaWnp7uHhwcfFE/isb06dPH1L9//+oHH3zwV02PBg8eXDF58uT+0dHR0ZMmTSq65ZZbGu0fYBMfH185bdq0woEDB0aPGTMmYvDgwfXNfo4ePeru7+9vrqyslOeee67v+++/n6XT6eDj42NZtmzZ2YULF162Y+rw4cOrBg4cWNm/f/+B995773XDhg371Yn2fffdVxAUFFQ7dOjQi5LD4uJi/fjx4yO0jr+Rr7zyyhkA+Nvf/pa1du3aHgaDwfjpp5/6v/feexfdaVuyZEnuqlWrAgYMGGDMz8+vb6FxqWO0OfU2Zd++fe7XX3/9gKioKOPy5cuDX3755ZymfidPPfXUhU8//dQ/MjLSePToUTd3d3cLAMTFxVXp9XoVGRlp/NOf/tSzYay2YzMqKsoYHh4e/dJLLzX5OPnL6devX93TTz+dExsbO2DYsGFRffr0qenWrdsV37Gi1pPGbj11BrGxsSo5ObmjwyCiLuyt/3cM7249id0vjEZP72Y1xe1wIrJPKRVrX5aSkpI5ZMiQi66O0rXDw8MjprKy8kBj815++eXAkpIS/dtvv13fBCo+Pj5i586dJ5pTd1lZmc5oNBoPHjx4xN/fv01O5kaNGhX+/fffZ9g3nXG0WbNm9Y2Jial8+umn+VtoZyUlJbpu3bpZ6urqcNttt4XPnj07f9asWU32KaHWSUlJ6TFkyJCwhuVd66HIREQOopTCd6k5GN7fv9MkBEQNjR07tv/p06ddt2/f/qv28c1NCP7xj394L1iwIGzevHm5bZUQAIDtKThtJTo6eoC7u7slMTHxquxTc637/e9/H5yUlORTU1MjCQkJpbY7XNS+mBQQEbXA4exSnMqvwGO3cLBOuvo1dZdgy5Ytl3185qVMnTq1bOrUqWmtqeNqcPjw4SMdHUNX9sEHH5zt6BiIfQqIiFpkU2o2nHSC8dG9OjoUR7BYLBY+BYSI6Bqn/Vvf6BOimBQQEV0hpRS+S8lBfEQPdL8GBiwDcCgvL68bEwMiomuXxWKRvLy8bgAONTafzYeIiK7QgTPFOFdchUVjDR0dikOYTKY558+f//v58+cHgheLiIiuVRYAh0wm05zGZjIpICK6QptSsuHipMPYa2QU42HDhl0AMLmj4yAioo7DK0JERFfAbFH4Z2oORhoC4OPmfPkViIiIOgEmBUREV+DnzEJcKKvBpCEcsIyIiK4dTAqIiK7AppRsuDvrMXpAz44OhYiIyGGYFBARNZPJbMH3h85j9ICe8HBhlywiIrp2MCkgImqmXRkFKKyoZdMhIiK65jApICJqpk0p2fB2dUKCIaCjQyEiInKoViUFIvK0iBwWkUMi8qmIuIlIPxHZIyInReRzEXHRlnXVpk9q88Ps6nleKz8mIre17iMRETlejcmMfx0+j7HRgXBz1nd0OERERA7V4qRAREIAPAkgVik1EIAewH0AXgewUikVDqAIwKPaKo8CKNLKV2rLQUSM2nrRAMYDeE9E+D8uEV1VdhzPR2m1iU2HiIjomtTa5kNOANxFxAmAB4AcALcC+Eqb/wmAqdr7Kdo0tPmjRUS08s+UUjVKqV8AnAQQ18q4iIgc6rvUbPh6OCM+vEdHh0JERORwLU4KlFLnALwBIAvWZKAEwD4AxUopk7bYWQAh2vsQAGe0dU3a8v725Y2sQ0TU4apqzdiSnovbB/aCs55dsYiI6NrTmuZD3WG9yt8PQDAAT1ib/7QZEZkrIskikpyXl9eWmyIiqrf12AVU1JoxcTCbDhER0bWpNZe8xgD4RSmVp5SqA/A1gJsB+GrNiQCgN4Bz2vtzAPoAgDa/G4AC+/JG1vkVpdQHSqlYpVRsQACf/kFE7eO71Gz08HLFjdf5d3QoREREbaI1SUEWgBtFxEPrGzAaQDqArQDu1pZ5CMBG7f232jS0+T8ppZRWfp/2dKJ+ACIA7G1FXEREDlNeY8K/j1zAhEG9oNdJR4dDRETUJlo8JKdSao+IfAVgPwATgAMAPgDwTwCficgyrWyVtsoqAGtF5CSAQlifOASl1GER+QLWhMIEYKFSytzSuIiIHOnH9FzUmCyYyKcOERHRNazFSQEAKKWWAljaoPgUGnl6kFKqGsA9TdSzHMDy1sRCRNQWvkvNRlA3Nwzr272jQyEiImozfIwGEVETSirrsP14HiYODoKOTYeIiOgaxqSAiKgJ/zp8HnVmxacOERHRNY9JARFREzalZqOvnwcG9+7W0aEQERG1KSYFRESNyC+vwa6MAkwcHATrA9aIiIiuXUwKiIga8f2h8zBbFCbxqUNERNQFMCkgImrEdynZCO/phahe3h0dChERUZtjUkBE1EBuaTX2Zhay6RAREXUZTAqIiBr4Z2oOlAKfOkRERF0GkwIiogY2pWbDGOSD8J5eHR0KERFRu2BSQERk50xhJQ5kFWPikKCODoWIiKjdMCkgIrLzz7QcAMAkNh0iIqIuhEkBEZGdTSnZGNLHF338PDo6FCIionbj1NEBEBF1pDqzBQeyirHjRB6STuTjcHYpXpowoKPDIiIialdMCoioS1FK4XRBJZJO5CHpeD52nypAeY0Jep3g+j6+eHacAbOGh3V0mERERO2KSQERXfNKqurwn4x8JJ3Ix44TeThTWAUA6OPnjinXB2NERACG9/dHN3fnDo6UiIioYzApIKJrUlWtGR/uOIXtx/Nw8EwxzBYFL1cnDO/vj7kjrsOIiACE+ntwcDIiIiK0MikQEV8AfwcwEIAC8AiAYwA+BxAGIBPAvUqpIrH+z/s2gDsAVAKYrZTar9XzEICXtGqXKaU+aU1cRETvb8/AO/8+gSG9u2HByP4YERGAmL6+cNbz+QpEREQNtfZOwdsAflBK3S0iLgA8ALwA4N9KqddEZAmAJQAWA7gdQIT2dwOA9wHcICJ+AJYCiIU1sdgnIt8qpYpaGRsRdVFKKXyXko2b+vvjfx+7saPDISIiuuq1+JKZiHQDcAuAVQCglKpVShUDmALAdqX/EwBTtfdTAKxRVrsB+IpIEIDbAGxRShVqicAWAONbGhcR0eHsUpzKr8CkIRxrgIiIqDlacx+9H4A8AB+JyAER+buIeAIIVErlaMucBxCovQ8BcMZu/bNaWVPlFxGRuSKSLCLJeXl5rQidiK5lm1Kz4aQTjI/u1dGhEBERdQqtSQqcAAwF8L5SKgZABaxNheoppRSsTYIcQin1gVIqVikVGxAQ4KhqiegaYm06lIP4iB7o7unS0eEQERF1Cq1JCs4COKuU2qNNfwVrkpCrNQuC9npBm38OQB+79XtrZU2VExFdsQNninGuuAqTBrPpEBERUXO1OClQSp0HcEZEIrWi0QDSAXwL4CGt7CEAG7X33wKYJVY3AijRmhn9C8A4EekuIt0BjNPKiIiu2KaUbLg46TA2OvDyCxMRERGA1j996LcA1mtPHjoF4GFYE40vRORRAKcB3KstuxnWx5GehPWRpA8DgFKqUEReAfCzttyflVKFrYyLiLogs0Xhn6k5GGkIgI8bByIjIiJqrlYlBUqpg7A+SrSh0Y0sqwAsbKKe1QBWtyYWIqKfMwtxoayGTx0iIiK6QhzFh4iuGZtSsuHurMfoAT07OhQiIqJOhUkBEV0TTGYLvj90HmOMgfBwaW3LSCIioq6FSQERXRN2ZRSgsKIWEwcHdXQoREREnQ6TAiJqVz8dzcWhcyUOr3dTSja8XZ2QYOAYJkRERFeKSQERtRuLReF3nx7EE/+7HyazxWH11pjM+OHweYyL7gU3Z73D6iUiIuoqmBQQUbs5caEcZTUmZBZU4uv9jhujMOl4PsqqTZg0hE2HiIiIWoJJARG1m/1ZRQCAEF93vP3vE6g1OeZuwXep2eju4Yybw3s4pD4iIqKuhkkBEbWb/aeL4OfpguXTBuJccRU+Tz7T6jqras3Ykp6L8QOD4KznP2lEREQtwf9Biajd7M8qQkwfXyQYAvCbsO5496cTqK4zt6rOn45eQGWtmU2HiIiIWoFJARG1i+LKWmTkVWBoaHeICBaNjURuaQ3W7T7dqnq/S81GgLcrbujn76BIiYiIuh4mBUTULg6cKQYAxPT1BQAM7++Pm8P98f62DFTUmFpUZ1l1HX46egETBgVBrxOHxUpERNTVMCkgonZx4HQRdAIM6e1bX7ZobCQKKmrxyX8yW1Tnj0dyUWOysOkQERFRKzEpIKJ2sT+rGFG9fODp6lRfNiy0O0ZFBiBx+ymUVtddcZ2bUnIQ4uuOmD7dHRkqERFRl8OkgIjanNmicPBMMYaG+l40b9HYSJRU1WHVjl+uqM7iylrsOJGHCYODoGPTISIiolZhUkBEbe7EhTKU15gwtO/FV/QH9e6G8dG9sHrnLyiqqG12nf86fB51ZoVJg4MdGSoREVGXxKSAiNrc/tPWTsaNJQUA8PRYA8prTfhgx6lm17kpJQdh/h4YGOLjkBiJiIi6slYnBSKiF5EDIvKdNt1PRPaIyEkR+VxEXLRyV236pDY/zK6O57XyYyJyW2tjIqKry/4s66Blof4ejc6P7OWNSYOD8fH/ZSKvrOay9eWV1WBXRj4mDQmGCJsOERERtZYj7hT8DsARu+nXAaxUSoUDKALwqFb+KIAirXylthxExAjgPgDRAMYDeE9E9A6Ii4iuEvuzijC0r+8lT+CfGhOBGpMZf9uecdn6fjiUA4sCJrLpEBERkUO0KikQkd4AJgD4uzYtAG4F8JW2yCcApmrvp2jT0OaP1pafAuAzpVSNUuoXACcBxLUmLiK6ehRX1uJUXgVimmg6ZHNdgBfuGtoba3efxvmS6ksuuyklB4ZAL0T28nZkqERERF1Wa+8U/AXAcwAs2rQ/gGKllG0korMAQrT3IQDOAIA2v0Rbvr68kXV+RUTmikiyiCTn5eW1MnQiag8Hsi7dn8Dek6MjYLEovLv1RJPL5JRUYW9mITsYExEROVCLkwIRmQjgglJqnwPjuSSl1AdKqVilVGxAQEB7bZaIWmF/VhH0OsGQPt0uu2wfPw9M/00ffP7zGZwprGx0mX+m5gAAJg5hUkBEROQorblTcDOAySKSCeAzWJsNvQ3AV0RsoxP1BnBOe38OQB8A0OZ3A1BgX97IOkTUye3PKkJUL294uDhdfmEAT9waDhHB//zU+N2CTak5GBjig349PB0ZJhERUZfW4qRAKfW8Uqq3UioM1o7CPymlZgDYCuBubbGHAGzU3n+rTUOb/5NSSmnl92lPJ+oHIALA3pbGRURXD7NF4WBWcbOaDtkEdXPHjBv6YsP+c/glv+JX87IKKpFypphNh4iIiBysLcYpWAxgkYichLXPwCqtfBUAf618EYAlAKCUOgzgCwDpAH4AsFApZW6DuIionR3PLUNFrbnRkYwvZf7I/nDR6/D2j8d/Vb4pNRsAMGFwkMNiJCIiIqB59/MvQym1DcA27f0pNPL0IKVUNYB7mlh/OYDljoiFiK4e+7OKADSvk7G9nt5ueOimMCQmZWDBqHAYAq1PGfouNQdD+/qid/fGxzsgIiKiluGIxkTUZvafLoa/pwv6+l35Sfzjt1wHTxcnrNxivVtw8kIZjuSUYhI7GBMRETkckwIiajMHsooQ07d7i0Yd7u7pgkfi++H7Q+dx6FwJNqXkQASYMIhNh4iIiByNSQERtYmiilqcyq+44v4E9h6N74du7s54a8txbErNxo39/NHTx82BURIRERHApICI2siBMy3rT2Cvm7sz5t5yHX46egGn8iowcQjvEhAREbUFJgVE1Cb2ny6GXicY3Pvyg5ZdyuybwuDv6QK9TnD7QCYFREREbcEhTx8iImpof1YRBgQ1f9Cypni6OuG1uwbjdEEF/DxdHBQdERER2WNSQEQOZ7YopJwpxl3DejukvrHGQIfUQ0RERI1j8yEicrhj57VBy1rRn4CIiIjaD5MCInK4lg5aRkRERB2DSQEROdz+rCL08HJBHz/3jg6FiIiImoFJARE53IGs4hYPWkZERETtj0kBETlUYUUtfsmvYNMhIiKiToRJARE51IH6/gQtH8mYiIiI2heTAiJyqP1ZRXDSCQb3ZlJARETUWTApICKH2n+6GAOCfODuou/oUIiIiKiZWpwUiEgfEdkqIukiclhEfqeV+4nIFhE5ob1218pFRN4RkZMikioiQ+3qekhb/oSIPNT6j0VEHcFktiDlbDGbDhEREXUyrblTYALwjFLKCOBGAAtFxAhgCYB/K6UiAPxbmwaA2wFEaH9zAbwPWJMIAEsB3AAgDsBSWyJBRJ3LsdwyVNaaMTSUP2EiIqLOpMVJgVIqRym1X3tfBuAIgBAAUwB8oi32CYCp2vspANYoq90AfEUkCMBtALYopQqVUkUAtgAY39K4iKjj7M8qBsBBy4iIiDobh/QpEJEwADEA9gAIVErlaLPOAwjU3ocAOGO32lmtrKnyxrYzV0SSRSQ5Ly/PEaETkQMdOF2EHl6u6N2dg5YRERF1Jq1OCkTEC8AGAE8ppUrt5ymlFADV2m3Y1feBUipWKRUbEBDgqGqJyEH2ZxVhaF9fDlpGRETUybQqKRARZ1gTgvVKqa+14lytWRC01wta+TkAfexW762VNVVORJ1IQXkNMgsq2Z+AiIioE2rN04cEwCoAR5RSb9nN+haA7QlCDwHYaFc+S3sK0Y0ASrRmRv8CME5EumsdjMdpZUTUiRxgfwIiIqJOy6kV694MYCaANBE5qJW9AOA1AF+IyKMATgO4V5u3GcAdAE4CqATwMAAopQpF5BUAP2vL/VkpVdiKuIioA/x30LJuHR0KERERXaEWJwVKqZ0Ammo4PLqR5RWAhU3UtRrA6pbGQkQdb39WEYzBPnBz5qBlREREnQ1HNCaiVjOZLUg5U8KmQ0RERJ0UkwIiarWj58tQVWdGDEcyJiIi6pSYFBBRqx3IKgLATsZERESdFZMCImq1/VnFCPDmoGVERESdFZMCImo1DlpGRETUuTEpIKJWyS+vwemCSjYdIiIi6sSYFBBRq9QPWsaRjImIiDotJgVE1Cq2QcsGhXDQMiIios6KSQERtcr+00WI5qBlREREnRqTAiJqMZPZgtSzJYhhfwIiIqJOjUkBEbWYbdAy9icgIiLq3JgUEFGL7a8ftIwjGRMREXVmTAqIqMX2ny5CT29XhPhy0DIiIqLOjEkBEbWIUgr7s4oxtG93DlpGRETUyTl1dABEdPVSSiGvrAaZBZXILKjA6YIKZBZU4nRBBU7nV6KsxoSZN4Z2dJhERETUSkwKiJpJKYXc0hocOV+K0/kVcHPWw9vNGd5uTtrff9+7O+vb7Oq5UgrFlXU4V1yFs0WVOFtUhXPFVThney2uQlm1CV6uv47Lp0GM/31vfXXW6XC2qLL+pN/2Wllrrt+2k07Qx88Dof4eiA31Q78enrhrWO82+ZxERETUfq6apEBExgN4G4AewN+VUq91cEh0FVNKocZkQVWtGdUmM6pqzaiqM8NZr4O/pwt8PVyg17X8pLyy1oTjueU4dr4UR3LKcPR8KY6eL0NxZV2z1nfSCbxsJ9+u/z35dnXWwUWvg5NO4Oykg7NO4KzXwUmvg4te4KTXwVmvg7PeVi4orTLhXLF28q+d+NufqAOAh4sevbu7I8TXHTF9fdHN3Rnl1SaUVZtQWl2H0moTzhVXo6y6DGXVJpRV18GiGo/dWW898e/n74nh1/kjrIcHQv09EebvgRBfdzjp2eqQiIjoWnNVJAUiogfwVwBjAZwF8LOIfKuUSu/YyNqG2aJQWWtCVa0ZFbXm+veV2omtk07g6qSHi5MOrk66+hNJV2c9XJ109eUuet2vrkbXmS0orzahvMZ6MlheY0J5Td1/3zeYV1VnhslsgcmsUGdRMFssqDMra5lFoc5sLbPOt74qZT0B9XDVw8PFCZ4ueni4aq8uTvC8qNwJ7i461JmtJ/E1dWZUa681Jov2Z0ZNnd1723J1FlTVmVFdZ90v1dr+sZVfik6A7h4u8Pdygb+nK/y9XNDDyxX+ni7w97JNW+cBwLHcMhy1O/nPLKiA0k6aPVz0iOzljdsHBmFAkDeievngugBP1Jos9SfYtpPvMu1EvKz+/X/LzhZVotZsQZ1tn5v/u7/rzAq1ZkuTn8fXwxkhvu7o18MT8RE90Lu79QTdlgj4ejhf0Z0JpRQqa831MZZWm1BrsqB3d3cE+7q3KqEiIiKizueqSAoAxAE4qZQ6BQAi8hmAKQAcnhT8/ssUnCuucnS1jTJbFKrqtJN97eS/otaMWlPTJ39XysVJB1e9DrVm60n15egEWrMSZ7g5W69K63XaFWqdQK8TeLg4wUkvcNJZr2g7aVet9TqBAKisM6OyxoTKWjPyy2tRUViJyhozKmqtZeamLkE3wbU++dHXv3dx0sPdWQd3Fz26ezjD1VkPd9ufix5uznq4Oet+VebqpEed2YLCiloUlNcgX3stKK/F4exS5JfXoKza1GQcIkConweievlgyvXBiOrlgwFB3ujT3QO6djhJVkrBbFEwWawJgi1x8HR1gperY3+qIgJPVyd4ujqhVze3llVSUQB89oCtQlvNl5lG49Nt6Z5PAA+/Nt3Eji+OI/9M+RWv16OPF0bca2iDiIiIiK7M1ZIUhAA4Yzd9FsANDRcSkbkA5gJA3759W7Qh6xVwx52UX4qIoLuHC3p318Pd2cl6hd3FegJrvYKutyuzXl13c9bDbLFeVa+1u3Jue19bf3Xd8qtyF70O3m7Wk0cvN+f69uTWaSd4a69t2dYd+HWzHluSUFlrhrPeevfDdufD1cl6Ut/wbkdbqzGZtaShFvnlNSisqEWd2QJDoDcMgd7wdPDJ95UQsSZgTnrAzVnfYXFcESdXAFoSqBokg/XTyvrefro9NYyLiIiILiLqKvgPU0TuBjBeKTVHm54J4Aal1BNNrRMbG6uSk5PbK0QiomuCiOxTSsV2dBxERHR1uVp6DJ4D0MduurdWRkREREREbexqSQp+BhAhIv1ExAXAfQC+7eCYiIiIiIi6hKuiT4FSyiQiTwD4F6yPJF2tlDrcwWEREREREXUJV0VSAABKqc0ANsXuI2AAAAfLSURBVHd0HEREREREXc3V0nyIiIiIiIg6CJMCIiIiIqIujkkBEREREVEXx6SAiIiIiKiLuyoGL2sJEckDcLqj42gjPQDkd3QQVwHuByvuByvuB6vW7odQpVSAo4IhIqJrQ6dNCq5lIpLMEUe5H2y4H6y4H6y4H4iIqC2w+RARERERURfHpICIiIiIqItjUnB1+qCjA7hKcD9YcT9YcT9YcT8QEZHDsU8BEREREVEXxzsFRERERERdHJMCIiIiIqIujklBOxCRPiKyVUTSReSwiPxOK/cTkS0ickJ77a6Vi4i8IyInRSRVRIba1fWQtvwJEXmooz5TSzh4P5hF5KD2921HfaaWaMF+iBKR/4hIjYg826Cu8SJyTNtHSzri87SUg/dDpoikacdDckd8npZqwX6Yof0e0kRkl4gMsaur0x4PRETUsdinoB2ISBCAIKXUfhHxBrAPwFQAswEUKqVe0/4D766UWiwidwD4LYA7ANwA4G2l1A0i4gcgGUAsAKXVM0wpVdT+n+rKOWo/aHWVK6W8OuSDtFIL9kNPAKHaMkVKqTe0evQAjgMYC+AsgJ8B3K+USm/3D9UCjtoPWl2ZAGKVUp1ucLMW7IebABxRShWJyO0A/qj9+9CpjwciIupYvFPQDpRSOUqp/dr7MgBHAIQAmALgE22xT2A9EYBWvkZZ7Qbgq5043AZgi1KqUEsEtgAY344fpVUcuB86tSvdD0qpC0qpnwHUNagqDsBJpdQppVQtgM+0OjoFB+6HTq0F+2GX3YWA3QB6a+879fFAREQdi0lBOxORMAAxAPYACFRK5WizzgMI1N6HADhjt9pZrayp8k6nlfsBANxEJFlEdovIVHRSzdwPTelqx8OlKAD/T0T2icjcNgmyHbRgPzwK4Hvt/TVzPBARUftz6ugAuhIR8QKwAcBTSqlSEamfp5RSItIl2nI5aD+EKqXOich1AH4SkTSlVEYbhdwmeDxYOWg/xGvHQ08AW0TkqFIqqY1CbhNXuh9EZBSsSUF8uwZKRETXJN4paCci4gzrf/jrlVJfa8W5tuYw2usFrfwcgD52q/fWypoq7zQctB+glLK9ngKwDdarq53GFe6HpnS146FJdsfDBQDfwNqUptO40v0gIoMB/B3AFKVUgVbc6Y8HIiLqOEwK2oFYL/mtgrVz4Ft2s74FYHuC0EMANtqVzxKrGwGUaM0I/gVgnIh0155EMk4r6xQctR+0z++q1dkDwM0AOk1nyhbsh6b8DCBCRPqJiAuA+7Q6OgVH7QcR8dQ66EJEPGH9XRxyfMRt40r3g4j0BfA1gJlKqeN2y3fq44GIiDoWnz7UDkQkHsAOAGkALFrxC7C2G/4CQF8ApwHcq5Qq1E4S3oW1E3ElgIeVUslaXY9o6wLAcqXUR+32QVrJUftBe/pKolaHDsBflFKr2vXDtEIL9kMvWJ865aMtXw7AqDUxuQPAXwDoAaxWSi1v1w/TCo7aDwB6wHp3ALA2ifzfa3w//B3AXVoZAJiUUrFaXZ32eCAioo7FpICIiIiIqItj8yEiIiIioi6OSQERERERURfHpICIiIiIqItjUkBERERE1MUxKSAiIiIi6uKYFBARERERdXFMCqhLE5FtIhLb0XEQERERdSQmBXTN00ZE7hLHuog4dXQMRERE1Pl0iRMl6npEJExEjonIGgCHAMwUkf+IyH4R+VJEvBpZZ1xjy4jIyyLys4gcEpEPtJGWISJPiki6iKSKyGdamaeIrBaRvSJyQESmXCLGJBG53m56p4gMaaoO7TPt0OLbr43sDBEZqZV/CyDdgbuRiIiIugiOaEzXJBEJA3AKwE0ATgL4GsDtSqkKEVkMwFUp9WcR2QbgWQCZl1jGTylVqNW7FsAXSqlNIpINoJ9SqkZEfJVSxSKyAkC6UmqdiPgC2AsgRilV0UiMD2nznhIRA4D/VUrFNlUHAAXAopSqFpEIAJ9qy48E8E8AA5VSv7TB7iQiIqJrHJsa0LXstFJqt4hMBGAE8H/aRX4XAP9psOyNl1hmlIg8B8ADgB+AwwA2AUgFsF5E/gHgH9qy4wBMFpFntWk3AH0BHGkkvi8B/EFEfg/gEQAfX6aObADvancXzAAMdnXtZUJARERELcWkgK5ltqvzAmCLUur+Syzb6DIi4gbgPQCxSqkzIvJHWE/SAWACgFsATALwoogM0uq5Syl17HLBKaUqRWQLgCkA7gUwzC6Wi+rQtp0LYAisTf+qG/msRERERFeMfQqoK9gN4GYRCQfq2/0bmrmMLQHI1/oY3K3N1wHoo5TaCmAxgG4AvAD8C8Bv7fod/P/27R0lgiCKwvB/GIzNXYGpqzB2AT72YWhkOoHJCCaCazAzlUHEEWNDAwPFBcydoDuQwfEBSoP1f1lfqotLZYdbtfVFb6fAGJhW1UtfW7XHOvBUVXNgFxj98BwkSZI+ZCjQv1dVz8ABcJFkRnctaPM7a6rqFZjQPVa+BKb9LyPgPMk9cAuM+7VHwBowS/LQf3/W2w3wBpy9K6/a4wTYT3LX9+90QJIk/QofGksDSrIBXNEFkPnA7UiSpEY5KZAGkmQPuAYODQSSJGlITgqkP5ZkGzheKj9W1c4Q/UiSJC0zFEiSJEmN8/qQJEmS1DhDgSRJktQ4Q4EkSZLUOEOBJEmS1LgFolDBjGpxKpgAAAAASUVORK5CYII=\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "search_terms = Q(experimental_method='Electron Microscopy')\n", "filter_results = ['experimental_method','release_year', 'pdb_id']\n", "results = run_search(search_terms, filter_results, number_of_rows=1000000)\n", "pandas_plot_multi_groupby(results, 'release_year', 'experimental_method')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3) Electron Microscopy resolution has been said to be improving. Is this true? \n", "hint - the search term and filter can be different.\n", "pandas_plot_multi_groupby_min with use_min would be useful to plot this or maybe a box plot?" ] }, { "cell_type": "code", "execution_count": 195, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Number of results: 61831\n" }, { "output_type": "display_data", "data": { "text/plain": "<Figure size 432x288 with 1 Axes>", "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEHCAYAAABBW1qbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deXzcdZ348dd7JpmkuZNmkqZt2qRn0rulLbfQg1IKWFwFwZVDUPytHLvrKgsq4qqo7KJCV11FRNFVWVAoxRYKLSgIPemVtOmZtrRp7vtozvn8/pjvTNM0d2YySb7v5+PxfWT6me9885lvJ3nn/TnFGINSSikF4Ah1BZRSSg0dGhSUUkr5aVBQSinlp0FBKaWUnwYFpZRSfmGhrsBAJScnm4yMjFBXQymlhpUPP/ywzBjj7lg+7INCRkYGO3fuDHU1lFJqWBGRk52Va/ORUkopPw0KSiml/DQoKKWU8tOgoJRSyk+DglJKKT8NCkoppfw0KCillPKzZVAwxvD2wWL+fqQs1FVRSqkhxaZBAb6/4SDf/st+PB7dT0IppXxsGRQcDuHBZVM5XFzH67lFoa6OUkoNGbYMCgCrZqcxJSWGpzcf1mxBKaUstg0KznbZwhv7NVtQSimwcVAAuH52GpPd0Ty96YhmC0ophc2Dgi9bOFRcq9mCUkph86AAcMOcsUx2R7Nms2YLSikVtKAgIv8lIgdFZJ+IvCIiCe2ee0REjorIIRG5tl35SqvsqIg8HKy6tefLFg4W1bJRswWllM0FM1N4C5hljJkDHAYeARCRGcCtwExgJfAzEXGKiBP4KXAdMAO4zTo36G6YM5ZJ7mie1mxBKWVzQQsKxpg3jTGt1j+3AuOtx6uBF4wxTcaY48BRYLF1HDXG5BtjmoEXrHODzukQHlzqzRbePKDZglLKvgarT+Fu4HXr8TjgVLvnTltlXZUPihvnjmVScjRPbz6q2YJSyrYGFBREZJOI5HZyrG53zteBVuD3A61su2veKyI7RWRnaWlpQK7pdAgPLJtCXmENbx4oDsg1lVJquBlQUDDGLDfGzOrkeBVARO4CbgD+0Rjj+/O7AEhvd5nxVllX5Z1932eMMQuNMQvdbvdA3sJ5bpzjzRbWbD7CueoqpZR9BHP00UrgIeDjxpiGdk+tA24VkQgRyQSmAtuBHcBUEckUERfezuh1wapfZ8KcDu5fOoUDmi0opWwqmH0KPwFigbdEZI+I/BzAGLMfeBE4ALwB3GeMabM6pe8HNgJ5wIvWuYPq43PHkpnsneWs2YJSym7CgnVhY8yUbp57HHi8k/INwIZg1ak3wpwO7l8yhX97aS9vHShmxcwxoayOUkoNKtvPaO7M6nljyRgdxdPat6CUshkNCp3w9i1MZf+ZGjbllYS6OkopNWg0KHThpnljmTg6iqc2HdZsQSllGxoUuhDmdPCAlS1s1mxBKWUTGhS64c8WNmu2oJSyBw0K3fCNRMot0GxBKWUPGhR68In545iQpCORlFL2oEGhB75ZzjkF1bx9ULMFpdTIpkGhFz4xfxzpSaM0W1BKjXgaFHoh3OnggSVT2Xe6mncOabaglBq5NCj00icWWNmCromklBrBNCj0Urg1Emnv6Wr+eigwezjYTWubJ9RVUEr1QINCH/zDgvGMTxzFU9q30GdHS+qY+dhGtuWXh7oqSqluaFDoA3+2cKqKvx7WbKEvXs8ppKnVw58+PB3qqiiluqFBoY/82YL2LfTJZms475sHimnRZiSlhiwNCn3kCnNwn5Ut/E2zhV4prW1i7+kq5qUnUH22hQ+OaROSUkOVBoV++OSC8YxL0Gyht945VIIx8M0bZxATEcaGfYWhrpJSqgsaFPrBly3sOVXFu0fKQl2dIe/tvBLS4iOZn57AsuwUNh4o0iYkpYYoDQr99KmLfNmCrqDanabWNt47UsrSrBREhFWz06hqaGGrjkJSakjSoNBPrjAHX1oymd0fVfGeZgtd2pZfQX1zG8uyUwC4apqbaJeTDTnahKTUUKRBYQBuviidsfGRmi104+2DJUSGO7hscjIAkeFOlmansnF/sU5mU2oI0qAwAK4wB/ctncIuzRY6ZYxhU14xV0xJJjLc6S+/fvYYKuqb2Xa8IoS1U0p1RoPCAPmyBV1B9UJHSuo4XXmWpVmp55VfPT2FKJeT9dqEpNSQo0FhgLx9C1P48GQlfz+q2UJ7vt3qlmalnFceGe5kSVYKG3OLtAlJqSFGg0IA3LxwPGnxkbqCageb84qZNS6OMfGRFzx3/ew0yuub2X5Cm5CUGko0KARARJiTLy2Zws6Tlbx/VIdaAlTUN7Pro8oLmo58lkxPYVS4jkJSaqjRoBAgt/iyhc06Egngb4dL8BhYnp3S6fOjXE6WZLl5I7eYNo/eL6WGCg0KARIR5uRLV09mx4lKXdsH2JRXgjs2gllj47s8Z9XsNMrqmtihTUhKDRkaFALolkXpjInTvoWWNg/vHiplWVYKDod0ed6S6SlEhju0CUmpIUSDQgB5+xYms/1EBVtsnC3sOF5BbVPrBaOOOoqOCOPqaSm8nlukTUhKDREaFALsloXebMHOK6huPliCK8zBFVOTezx31Zw0Smub+PBk5SDUTCnVEw0KARYZ7uSfrrayBZsu+vb2wRIumzyaKFdYj+cuy0ohIkybkJQaKjQoBMGnF6WTGhfBU5uOhLoqg+5YaR3Hy+pZ1kPTkU90RBhXT3fzem4hngA1IX1/Qx6PvLxPJ8Yp1Q9BDwoi8m8iYkQk2fq3iMgaETkqIvtEZEG7c+8UkSPWcWew6xYskeFO/umqyWw/br++hbetWcxLehkUwDsKqbimiQ8/GngT0pv7i/jFu/n8cfspHn0117ZNeEr1V1CDgoikAyuAj9oVXwdMtY57gf+xzk0CHgMuBhYDj4lIYjDrF0y3Lp5ASmwET206HOqqDKrNB4vJGhPL+MSoXr9mWXYqrgA0IVXWN/O1V3KZkRbHF6+axB+3n+LHb9nr/is1UMHOFH4MPAS0/3NtNfBb47UVSBCRNOBa4C1jTIUxphJ4C1gZ5PoFja9vYZuNsoXqhhZ2nKj0753QWzERYVw1zc3rOUUDakJ6bN1+qhqaefLmuTy8MotbFo5nzdtHef6DE/2+plJ2E7SgICKrgQJjzN4OT40DTrX792mrrKvyzq59r4jsFJGdpaWlAax1YN1mZQtPb7bHX6t/O1JKm8d0ubRFd1bNHkNRTSO7T/WvCemN3CLW7T3DA0unMmNsHCLC9z4xm+XZqXzrtf38Zd+Zfl1XKbsZUFAQkU0iktvJsRr4GvDNwFTzfMaYZ4wxC40xC91udzC+RUD4soWt+RW8Pgijawqrz1Lf1Br079OVzXnFjI52MS89oc+vXZadisvpYENOUZ9fW1HfzDfW5jBzbBxfWjLZXx7mdPCTz8xn4cRE/vX/9vC+rmKrVI8GFBSMMcuNMbM6HkA+kAnsFZETwHhgl4iMAQqA9HaXGW+VdVU+rH32konMHhfP117JobS2KWjf52R5Pdf86F2efPNQ0L5Hd1rbPPz1UClXT0/B2c0s5q7ERYbzsWnJvJ7T91FIj63bT/XZFn54y1zCned/pCPDnTx7xyImJcdw7293kltQ3ee6KWUnQWk+MsbkGGNSjDEZxpgMvE1BC4wxRcA64A5rFNIlQLUxphDYCKwQkUSrg3mFVTashTsd/OiWudQ3t/HIyzlBGQ3T0ubhwRf2UNfUyqmKhoBfvzd2fVRF9dmWPvcntLdqdhpnqhvZc7qq1695PaeQ1/ae4cGlU8kaE9fpOfFR4Tx/92ISolzc9evtnCir73cdlRrpQjFPYQPeTOIo8EvgSwDGmArgO8AO6/i2VTbsTU2N5aFrp7Mpr5g/fXg64Nf/0VuH2XuqisSo8KBmI93ZnFdMuFO4shezmLuyLDuVcKf0uqmtvK6Jb6zNZda4OP7f1ZO7PXdMfCTP372YNo/hjue2U1Lb2O96KjWSDUpQsDKGMuuxMcbcZ4yZbIyZbYzZ2e6854wxU6zj14NRt8Fy9+WZLM5M4tuvHaCg6mzArvvB0TJ+/rdj3LoonaVZqZTVNQfs2n2x+WAJF2eOJjYyvN/XiB8VzpVT3WzIKepVRvXNdfupaWzhyZsvbDbqzJSUGJ67axGltU3c9dwOahpb+l1XpUYqndE8SBwO4Yc3z8VjDA/9aW9AZu9W1DfzL/+3h8zkaL554wySY12U1jYN+oStk+X1HC2p63EBvN5YNTuNgqqz7D3dfdv/+n2FrN9XyL8sn9Zls1Fn5k9I5H8+u4DDxbXc+9udNLa0DbTKSo0oGhQGUXpSFN+4YQbvHy3nd1tPDuhaxhge+tM+qhpaWHPrfKJcYbhjImhu81DTOLgjkHx7MQ+kP8HnGqsJqbuJbGV1TTz6ai5zxsfzxY9N6vP3uHp6Ck/ePJet+RV8+cU9ukKrUu1oUBhkty5K5+rpbr7/eh75pXX9vs7/bj3JprxiHlo5nVnjvBvZuGMjAAa9X+HtgyVMSYlh4ujoAV8rPiqcy6cksyGnsMuM55uv5lLX2MqTN88lrBfNRp25af44vnF9NhtyinhsnS6HoZSPBoVBJiI88ck5RIQ5+beX9vZr0bZDRbV8d30eV01zc/flmf5yd8zgB4Xaxha2HS8PSJbgs2p2Gqcrz5LTyfDRv+w7w4acIv55+VSmpcYO6Pt8/spJfPGqSfzv1o9Ys/nogK6l1EihQSEEUuMi+c5Ns9j9URW/eDe/T69tbGnjgT/uIjYynCdvnnvezma+TKGsbvCCwntHymhpMyzrxyzmrqyYkUqYQ1jfoQmptLaJR9fmMrefzUadeXhlFp9cMJ4fbzrMs+/lc7ZZ+xiUvWlQCJEb56Rx/ew0ntp0mANnanr9usfX53G4uI4f3jLXHwR8kkOQKWzOKyF+VDgLJvR9FnNXEqJcXDYlmdfbjUIyxvDo2lzqm9oG1GzUkYjwg0/OZmlWCt9dn8ec/9jIzT//gB+9eYgPjpZpR7SyHQ0KISIifOemWcSPcvHlF/fQ1NrzL5839xfxu60n+fwVmVw17cLlPeJHhRPuFEoHKVNo8xjeOVTCkunugP2S9rl+9hg+qmhgvxUwX9tXyBv7i/jXa6YxdYDNRh2FOx384vaL+PVdi7j78kyaWj385J2jfObZbcz51pvc8ost/Pitw2w5Vq5BQo14PW+NpYImKdrFE5+czT3P72TN5iN89dqsLs8tqm7koT/vY+bYOL66cnqn5zgcwujoCMoGKVPYc6qKivpmlmYHrunIZ8WMMXztlVzW5xSSGhfJY6/mMjc9gS9cmdnzi/sh3OlgSVaKfx+ImsYWdlp7bW/Nr2DN20d4evMRXGEOFkxI4NJJyVwyKYl5ExKICHMGpU5KhYIGhRBblp3KLQvH8z9/Pcay7FQWTLhwC4k2j/FmEy0e1tw2v9tfQu7YiEHLFN4+WIzTIVw1NfCLEiZGu7hs8mg25BSSX1pHfXMbP7x5TsAzkq7ERYazNCvVv+Jr9dkWdhz3brG6Nb+cpzYfxmyC2IgwfnP3Ii6amDQo9VIq2LT5aAh49IYZpMWP4isv7u20o/MX7x7jg2PlfOvjM5jsjun2Wu7YiEHraN6cV8KijETio/o/i7k7q2ancbK8gY37i/m3a6YxJSWwzUZ9ET8qnOUzUnn0hhmsf/BK9jy6gmduv4jEaBf3/2E3lfWhmUmuVKBpUBgCYiPD+a+b55BfVs8Tbxw877k9p6r40ZuHuX52GrcsTO/iCuckx7gGpaP5dGUDB4tqAzrqqKNrZ47B6RDmT0jg81cGZrRRoMRHhbNi5hh++pkFlNc185WX9upcBzUiaFAYIi6bnMznLs/gNx+c8K/7X9vYwoN/3E1qXCTf+4fZiPS8JLU3U2gOyDIa3XnnoHcW89IAzk/oKCnaxe8/fzHP3L6wX8txD4bZ4+P52qosNh8s4dn3joe6OkoNmAaFIeTfV2YxyR3NV1/aS01jC4+9up/TlQ08des84kf1rokmOSaCNo+h6mxwF3vblFdCZnJ0j81ZA3XJpNEXDL0dau68LIOVM8fwxBsH2fVR/3aOU2qo0KAwhESGO/nRLfMorm3i07/Yysu7C3hg6VQWZfS+E3Mwlrqob2ply7HygCyANxKICE98ag5pCZE88IfdVDVo/4IavjQoDDHz0hP40tWTySusYeHERB5YOqVPr/ctdRHMzub3j5bR3OZhmQYFv/hR4fzktgWU1DbylZf2af+CGrZ0SOoQ9MDSqSREubhxTlqfh2AmD0KmkFdYC8CCiRcOn7WzuekJPHJdNt/+ywGee/8E91wRnDkVSgWTZgpDkCvMwT1XZJISF9nn1w5G81FRTSOjo11EhuukrY4+d3kGK2ak8oPX89hzqvfbiio1VGhQGGFiI8JwhTmC2nxUXNNIaj8Clh2ICP/1qbmkxEZy/x92UR3kDn+lAk2DwggjIrhjIoKbKVQ3MiZeg0JX4qPC+cln5nuXJvmTzl9Qw4sGhREo2EtdaKbQs/kTEnn4uiw27i/mNx+cCHV1lOo1DQojUHIQM4Wm1jbK65sZo0GhR/dckcny7BS+tyGPfae1f0ENDxoURqBgrn9UUuO97pj4oT2hbCgQEZ682du/cJ/2L6hhQoPCCOSOcVFR3xyUDemLaxoBtPmolxKiXKy5bT6FVY08/Gedv6CGPg0KI5A7NgKPgfL6wGcLhdXeoJAWPyrg1x6pLpqYyFevnc7rud5NkpQaynTy2gjk36u5tpmU2MD+Re/LFLRPoW++cOUkth2v4Lt/yWPBhERmjYsPdZVCrqXNg1PkvH3Gh5uqhmZyCqrZd7qafaeryCus5b4lk/n0ogmhrlq/aVAYgfx7NQehX6GoupHIcAdxo/Sj0xcOh/DDm+eyas173PeHXbz8T5cxOsbe/TKf+Nn7jI0fxS9uv6hXKwCHWl1TK7kF1eScrmbv6SpyCqo5Wd7gfz5jdBS1jS28srtAg4IaWoI5q7moppExcZHD4od4qEmMdvHft83n089s5ZLvb+byKcmsmpXGipmpJES5Ql29QVVYfZbcghpyC2p49r3jfOFjodkvwxhDU6vHOtpoajn3uK6xlbzCGm8WUFDNsdI6fF1C4xJGMXtcPJ9elM6ccQnMHhdPfFQ4337tAL/fdpLmVg+usOHZOq9BYQRKDuKieDpHYWAWZiSx/sEreGV3ARtyCnnoz/v42ivCpZNHc/3sNFbMHENS9MgPEFuOlQMwa1wcT7xxkIsyEjvdijYQPjhaxhMbD1HX2HIuALS00djqobnV0+Prk2MimDs+nhvnjGXO+Hhmj4/3/4x1tDgzkefeP05OQTUXDdO1wTQojEDREWFEuZxByxSC9cNrF1lj4njkujgeXpnF/jM1rM8pZENOIQ+/nMPX1+Zy6aTRrJqdxrUzU0dsE9OWY+UkRIXzv/dczA3//Xce+MNu1j94RcAzpoNFNdz7uw9JjA5nzvgEIsIcRIQ5vV/D2z0OcxARfu5xZLiTyHAn01Jj+pQZL7SWud9xokKDghpagjFXwRhDcU2TdjIHiIgwa1w8s8bF89C10zlQWMOGnEI25BTxtVdy+MbaHC7xB4gxQ36zob7Ykl/OxZlJJES5+OlnFvCpn3/AV17axy/vCFz/QklNI3f/egfREU5e/OKlgzJiLjkmgknuaLYfr+D/XTU56N8vGDQojFDBmNVc2dBCc6tHm4+CQESYOTaemWPj+cqK6RwsqmVDTiHrcwr5xtpcvvlqLrPHJ7BgQgLzJyQyPz2B8YmjhmXfzqmKBk5XnuXz1tLic9MTePi6bL4TwCXHG5pb+fxvd1J1tmXQAoLP4owkNuQU4vGYYTmySoPCCOWOieBYaV1Ar1lkzVHQxfCCS0TITosjOy2OL18zjcPFdWzIKWRrfjkvbD/Fr98/AXizwfnpCSyY6A0Sc8YnMMo19Jcz35Lv7U+4dHKyv+zuyzPYml/OD17P46KJicxLT+j39ds8hn9+YQ+5BdX88o6Fgz78d3FmEi/sOMWh4lqy0+IG9XsHggaFESo51sW244HNFPxzFDQoDBoRYfqYWKaPiQWgtc3DwaJadp+qYvfJSnafquLNA8UAOB1Cdlos89MTWTAxgfnpiUwcHTXksomtx8oZHe1iWuq5/b1FhCc/5R2ye/8fdrH+wSt7vS95R9/fkMdbB4r51o0zWJadGqhq99qidv0KGhQ6EJEHgPuANmC9MeYhq/wR4B6r/EFjzEarfCXwNOAEnjXG/CCY9RvJ3DGR/uaeQA2N881m1j6F0AlzOvz9ELdfMhGAivpm9pyqZNfJKnafquTlXaf9M6ddTgdhTsHpEMIcQpjTQZjj3L+9Xx3er9Z5SVEunrp1HrGR/ful3B1jDFvyy7lk0ugLgpVvyfGbf76Fh/60l59/tu/9C7/bepJn/36cuy7L4K7LQ7Pz3fjEUaTFR7L9eAV3XJoRkjoMRNCCgogsAVYDc40xTSKSYpXPAG4FZgJjgU0iMs162U+Ba4DTwA4RWWeMORCsOo5kvk7J8vqmgLWnFtU0IsKI6vAcCZKiXSzNSmVplvev4jaP4UhJLbs/quJkeQNtHg+tHkObx3i/tnm/tvrKrX+3eTzUN7ex+WAJbx8sYfW8cQGv68nyBgqrG7lk8uhOn/ctOf7d9Xn85oMTfK4Pv9jfOVTCY6/msiwrhUdvmBGoKveZiLAoI4ltx8sxxgy5TK0nwcwU/gn4gTGmCcAYU2KVrwZesMqPi8hRYLH13FFjTD6AiLxgnatBoR+SY7xD+8pqmwMWFIqrG0mOiSC8j/tGq8HldAhZY+LIGtP3pguPx7D4e5t460BxUIKCvz9hUudBAbxLjm/NL+d7G7z9C3PG99y/cOBMDff/fhfZaXGsuW0+zhB38C7KTGLd3jOcqjjLhNFRIa1LXwXzp3sacKWIbBORv4nIIqt8HHCq3XmnrbKuyi8gIveKyE4R2VlaWhqEqg9//lnNdY0Bu6ZvNrMauRwOYWlWCn87XNqriV19teVYOe7YCCa7o7s8p69LjhfXNHLP8zuIjQznV3cuIjoi9F2li61+hW3Hy0Nck74bUFAQkU0iktvJsRpvFpIEXAJ8FXhRApRHGWOeMcYsNMYsdLvdgbjkiOOf1VzbHLBr6mxme1ienUptYys7TlQE9Lq+/oTLJl/Yn9BRb5ccb2hu5Z7nd1BztoXn7lo0ZAZBTE2JIX5UeMDv4WAYUFAwxiw3xszq5HgV71/6Lxuv7YAHSAYKgPR2lxlvlXVVrvrhXKYQuBFIRTWNurmODVwxNRlXmINNecUBve6x0jpKa5u6bTpqr6clx9s8hgf/uIcDZ2r4yWcWMGPs0Bnp43B4+xV2nKgMdVX6LJjNR2uBJQBWR7ILKAPWAbeKSISIZAJTge3ADmCqiGSKiAtvZ/S6INZvRIsMdxIbGRawCWyNLW1UNbRo85ENRLnCuGJKMpvyigO6KZBvvaNLu+hk7swXrpzE0qwUvvuXPHILqs977vH1eWzKK+Y/Pj6TJVkpAatnoCzOTOR4WT0ltYFrwh0MwQwKzwGTRCQXeAG408oa9gMv4u1AfgO4zxjTZoxpBe4HNgJ5wIvWuaqf3DERAcsUdMc1e1mWncKpirMcKQncBMgt+eWMjY9kQlLvO159S46PjnFx3x92Udvo7V94/oMTPPf+ce6+PJPbh+iwT998hZ3DLFsIWlAwxjQbYz5rNSctMMa83e65x40xk40x040xr7cr32CMmWY993iw6mYXybGBW+qiSHdcs5Vl1vDWQDUheTyGrfkVXNKL/oSOfEuOn648y8Mv5/D2wWL+47X9LM9O5evXZwekfsEwa1w8o8KdbD8e+H6FYG7rqmMLRzB3TOAWxSvyz2bWPgU7GBMfyexx8Ww6EJigcLiklor65l73J3S0MCOJr6yYzvp9hdz72w+ZMTaONbfNC/nQ0+6EOx3Mn5AQlM7mtXsK+IefvR+U5fE1KIxg7iBkCtp8ZB/LslPYfaoqIL94+tOf0NEXPzaJ5dmppCVE8qs7FxHlCv3Q054sykjiQGENNY3dD6vtq7W7z1Bc00RSEDZn0qAwgrljI6htbKWxpW3A1yqqaSTa5QzK0gdqaFqenYox8PbBkp5P7sGWY+WkJ41ifGL/J3I5HMIv77iIzV++etj8cXJxZhLGwIcnA9evUFbXxN+PlrF63tigrMKqQWEE889qDsBfesU1jaQOkTHganDMHBtHWnwkmwfYr+DxGLYdr+h301F7IjKstrmcPyGRMIewI4D9Cn/Ze4Y2j+Gm+YGfcQ4aFEa0QO7VXFSts5ntRkRYlp3Cu4fLBpRtHiisofpsy4CajoarUS4ns8bFB7RfYe2eM2SnxTEtNTZg12xPg8IIdm6v5oHPatYd1+xpWXYqZ1va/GsW9cdW/3pHyT2cOTItzkxi76nqgDTjniirZ8+pKlbPGxuAmnVOg8IIFqhMweMx2nxkU5dOGk2UyzmgUUhbjpWTmRw9ZJagGGyLMpJobvOw73R1zyf34NU9ZxCBj8/VoKD6YXR0YIJCeX0zrR6jmYINRYY7uXJqMm8fLOnX2PjWNg/bj1dwSQD6E4arhRMTAQbchGSM4dW9BSzOSGJsQvDmC2lQGMFcYQ4SosIH3NGss5ntbXl2KoXVjew/U9Pn1+4/U0NtU6st+xN8Eq1d5rYNsLM5t6CG/NL6oHUw+2hQGOHcMQOfq3BuNrMGBTtakpWCSP9mN/v6Ii6ZlBToag0rizOT2HWykjZP/2cir91TgMvpYNWstADW7EIaFEa45ADMai7UvZltLTkmgvnpCWzO6/t8hS3HypmaEkNKrL0/O4sykqhraiWvsO/ZFnhXhH1t7xmunu4mPiq4c4U0KIxw7tiBL4pXXN2I0yH+0UzKfpbPSCWnoNqfNfZGS5uHHScqbN105LM405sp9XcdpC3HyimpbQp60xFoUBjxArHURVFNI+6YiCG9zowKruXZ3gXyNh/sfRPSvtNVNDS3BWTS2nCXFj+K8Ymj+t3ZvHZPATERYSwdhCXCNSiMcMkxETQ0t1Hf1Nrva+hwVDU1JYYJSVF9GprqW+/oYg0KgHeLzv7N0ukAABOQSURBVB0nKvo8iquxpY03cotYOWsMkeHOINXuHA0KI5xvrsJA+hW8s5m16cjOfLOb3z9WTkNz7/7A2JJfTtaYWJKiA79o23C0KDOJsrpmjpfV9+l1m/NKqGtq5aZ5wW86Ag0KI14g1j8qqtElLhRck51Kc6uH946U9XhuU2sbO09Uan9CO/3tV3h1TwEpsRGDdi81KIxwA53V3NDcSm1jqzYfKRZlJhEbGdarBfL2fFRFU6tH+xPamZQcTXKMi+196Feobmjhr4dKuXHu2EHr09OgMMINNCj4RptopqDCnQ6unp7C2wdL8PQw3n5LfjkicHGmBgUfEWHhxKQ+dTZvyC2kuc0zaE1HoEFhxEuKciECpf1cFK9I5yiodpZnp1BW18ye01XdnrflWDkzx8YFfUz9cLMoM4lTFWd7PbR37e4CJrmjmTUuLsg1O0eDwggX5nQwOtrV70zBt8SFZgoK4OppKTgd0m0TUmNLG7s/qtKmo04szrD6FXqRLZypOsu24xWsnjuuz/taD4QGBRtIHsBSF4XVmimoc+KjwlmUkcimA13Pbt51spLmNo92MnciOy2WaJezV5vurNt7BiCoy2R3RoOCDbhj+7/URXF1I7GRYcNiP1w1OJZnp3KouJZTFQ2dPr8lvxynQ1iUYe/1jjoT5nSwYGJir/oV1u4uYF56AhnJ0YNQs3M0KNjAQBbF0+GoqqNl1uzmrhbI23KsnFnj4nU/7y5cnJnEwaJaqhq67uc7VFTLwaJabhrkLAE0KNhCspUp9Gc9/KKaJm06UufJTI5msju60wXyGppb2Xta+xO648ugdp6o7PKcV/cU4HQINwRxM52uaFCwAXdMBE2tHmr7sdRFcXWj7qOgLrB8Ripb88upaWw5r3zniUpa2oz2J3RjbnoCLqejyyYkj8fw6p4zXDElOSSLUGpQsIHkWO+s5r42IbV5DKV1ujezutDy7FRaPYZ3D5eeV74lv5wwh/h3G1MXigx3Mmd8fJcjkD78qJKCqrPcNH/wswTQoGAL7hjvL/WyPgaFsrom2jxGZzOrCyyYkEhiVPgFC+RtOVbOvPQEoiN0YEJ3FmUmkXO6mrPNbRc8t3Z3AZHhDlbMGBOCmmlQsAX/rOY+jkDy77immYLqwOkQlmSl8M6hUlrbPADUNraQU1CtTUe9sDgjiVaPYfep8/sVmls9rM8p5JoZY0IWWDUo2IB/Ubw+Zgo6m1l155rsVKrPtvDhSe8vth0nKmjzGO1k7oWLMhIRgR3Hzw8K7x4upaqhJSSjjnw0KNhAYpQLp0P6nCn4ZjNrR7PqzJXT3LicDv/Q1C3HynFZ4/BV9+Iiw8keE8f2E+Xnla/dU0BiVDgfm+YOUc00KNiCwyH9WuqisLqRcKf3tUp1FBMRxsWTkvxDU7fklzN/QsKgbAQzEizOTGLXySparOa3uqZWNuUVc/2cNMKdofvVrEHBJryzmvu2KF5xdSMpsZE4dBtO1YVrZqSSX1bP7o8q2X+mRvsT+mBRRhJnW9rYf6YGgDf3F9HYMrgronYmaEFBROaJyFYR2SMiO0VksVUuIrJGRI6KyD4RWdDuNXeKyBHruDNYdbOj/uzVXFTTSKruuKa64dsz+PsbDmIM2p/QB4syvc1svnWQ1u45w/jEUVwU4ua3YGYK/wn8hzFmHvBN698A1wFTreNe4H8ARCQJeAy4GFgMPCYi2jgZIMkxfV//qKimUTuZVbfGJ0aRnRbH9hMVRIQ5mDchIdRVGjZSYiPJGB3F9hMVlNY28fcjpayeN3ZQV0TtTDCDggF8i4DHA2esx6uB3xqvrUCCiKQB1wJvGWMqjDGVwFvAyiDWz1Z8i+L1tDlKezqbWfXG8mxvtrAwI5GIMO1P6ItFGUnsPFHBa3vP4DGwOsRNRxDcoPAvwH+JyCngSeARq3wccKrdeaetsq7KVQAkx0TQ0maoPtvS88l4x5zXN7fpbGbVo+XWAnnadNR3izOTqGxo4ed/O0Z2WhzTUmNDXSUGNDtCRDYBnU27+zqwDPhXY8yfReQW4FfA8oF8v3bf9168TU9MmDAhEJcc8XwT2MrqmkjsxWiiYp2joHppzvh41tw2n6unh24Y5XC1ONO7OF5JbRP3XJEZ4tp4DShTMMYsN8bM6uR4FbgTeNk69SW8/QQABUB6u8uMt8q6Ku/s+z5jjFlojFnodusHsTfcMX3bq7mo2nueZgqqJyLCx+eOJU6Xyu6zCUlRpMRGIAIfD+GEtfaC2Xx0BrjKerwUOGI9XgfcYY1CugSoNsYUAhuBFSKSaHUwr7DKVAC4fYvi9bKzWWczKxV8IsIn5o9j9dyxpMWPCnV1gAE2H/XgC8DTIhIGNGI19wAbgFXAUaAB+ByAMaZCRL4D7LDO+7YxpuftiVSv+BbF622moLOZlRocj6zKDnUVzhO0oGCM+TtwUSflBrivi9c8BzwXrDrZWdyoMFxOR68zhcLqsyREhevsVKVsRmc024SIkBzjoqy2d7Oai6p1HwWl7EiDgo24YyN6nSkU1+gcBaXsSIOCjSTHRPR6+eyimkbNFJSyIQ0KNtLbTKGlzUNZXZPuuKaUDWlQsJHkmAjKrS02u1Na24QxOkdBKTvSoGAj7tgIPAYqG7rvbPbNUUjTTEEp29GgYCP+vZp76FcortY5CkrZlQYFG0nu5VIXOptZKfvSoGAj7RfF605RTSOuMAeJUbqWjVJ2o0HBRpJjrPWPesoUqr07roV6sw+l1ODToGAjMRFhRIY7es4UqnWOglJ2pUHBRkSkV3s162xmpexLg4LNJMd0P4HNGKOzmZWyMQ0KNuOOieh2Ubyas600tnh05JFSNqVBwWaSe1jqQoejKmVvGhRsxh0TQWVDMy1tnk6f9wcFbT5SypY0KNiMOzYCY6CivvMmJJ3NrJS9aVCwmZ5mNRfpNpxK2ZoGBZvxr3/URb9CUU0jo6NduML0o6GUHelPvs24e8oUqnWOglJ2pkHBZpJjvUtddDWruai6UUceKWVjGhRsJsoVRkxEWJeZgs5mVsreNCjYUHKMq9Og0NTaRnl9sw5HVcrGNCjYkDs2otPmo5Iab5nuuKaUfWlQsKHkmM4XxSv2DUfVoKCUbWlQsCFvpnDh5DWdzayU0qBgQ+6YCKrPttDU2nZeeVG1BgWl7E6Dgg0l+7flPD9bKK5pJDLcQdyosFBUSyk1BGhQsCHfBLayDv0KRTVNjImL1G04lbIxDQo25MsUOnY2F1Wf1TkKStmcBgUbcvubjzpmCjqbWSm706BgQ8kx3qUu2mcKxhiKreYjpZR9aVCwoYgwJ3GRYeetlFrZ0EJzq0ebj5SyuQEFBRG5WUT2i4hHRBZ2eO4RETkqIodE5Np25SutsqMi8nC78kwR2WaV/5+IuAZSN9W9jrOafcNRdTazUvY20EwhF/gH4N32hSIyA7gVmAmsBH4mIk4RcQI/Ba4DZgC3WecCPAH82BgzBagE7hlg3VQ3Os5q1tnMSikYYFAwxuQZYw518tRq4AVjTJMx5jhwFFhsHUeNMfnGmGbgBWC1eMdALgX+ZL3+eeCmgdRNdc8de35Q0NnMSikIXp/COOBUu3+ftsq6Kh8NVBljWjuUd0pE7hWRnSKys7S0NKAVt4uOS10UVTcicm5kklLKnnoMCiKySURyOzlWD0YFO2OMecYYs9AYs9DtdoeqGsNackwEdU2tnG32LnVRXNNIckwE4U4de6CUnfW4noExZnk/rlsApLf793irjC7Ky4EEEQmzsoX256sgaD9XIT0pyjtHQZuOlLK9YP1ZuA64VUQiRCQTmApsB3YAU62RRi68ndHrjDEGeAf4lPX6O4FXg1Q3xbmlLkqsfgXdm1kpBQMfkvoJETkNXAqsF5GNAMaY/cCLwAHgDeA+Y0yblQXcD2wE8oAXrXMB/h34sogcxdvH8KuB1E11z91hqQvvbGbtT1DK7ga0HKYx5hXglS6eexx4vJPyDcCGTsrz8Y5OUoOgffNRY0sbVQ0t2nyklNIZzXaVFH1uqQvfHIUx8aNCWSWl1BCgQcGmwp0OkqJdlNU16eY6Sik/DQo2lhzjorS26dzENe1TUMr2NCjYmDs2gtK6c81HOvpIKaVBwcbcMRFW81ET0S4nsZHhoa6SUirENCjYmG9RvOKaRl0ITykFaFCwNXdsBI0tHo6V1mkns1IK0KBga8nWrOYjJRoUlFJeGhRszDeBrc1jtPlIKQVoULC19stk645rSinQoGBrvuYj0OGoSikvDQo2lhTtwiHex9qnoJQCDQq25nQISdHebGGMNh8ppdCgYHvu2AicDjmvKUkpZV8DWjpbDX/u2Agq65tx+tqRlFK2pkHB5j69MJ3C6rOhroZSaojQoGBz189JC3UVlFJDiPYpKKWU8tOgoJRSyk+DglJKKT8NCkoppfw0KCillPLToKCUUspPg4JSSik/DQpKKaX8xBgT6joMiIiUAidDXY8gSQbKQl2JIUDvg5feBy+9D14DvQ8TjTHujoXDPiiMZCKy0xizMNT1CDW9D156H7z0PngF6z5o85FSSik/DQpKKaX8NCgMbc+EugJDhN4HL70PXnofvIJyH7RPQSmllJ9mCkoppfw0KCillPLToDCIRCRdRN4RkQMisl9E/tkqTxKRt0TkiPU10SoXEVkjIkdFZJ+ILGh3rTut84+IyJ2hek/9EeD70CYie6xjXajeU3/04z5kicgWEWkSka90uNZKETlk3aOHQ/F++ivA9+GEiORYn4edoXg//dWP+/CP1s9Djoh8ICJz212r/58HY4weg3QAacAC63EscBiYAfwn8LBV/jDwhPV4FfA6IMAlwDarPAnIt74mWo8TQ/3+Bvs+WM/Vhfr9DOJ9SAEWAY8DX2l3HSdwDJgEuIC9wIxQv7/Bvg/WcyeA5FC/p0G6D5f5fu6B69r9fhjQ50EzhUFkjCk0xuyyHtcCecA4YDXwvHXa88BN1uPVwG+N11YgQUTSgGuBt4wxFcaYSuAtYOUgvpUBCeB9GNb6eh+MMSXGmB1AS4dLLQaOGmPyjTHNwAvWNYaFAN6HYa0f9+ED6+cfYCsw3no8oM+DBoUQEZEMYD6wDUg1xhRaTxUBqdbjccCpdi87bZV1VT7sDPA+AESKyE4R2SoiNzFM9fI+dMVun4fuGOBNEflQRO4NSiUHQT/uwz14s2kY4OchrI91VQEgIjHAn4F/McbUiIj/OWOMERFbjBMO0H2YaIwpEJFJwNsikmOMORakKgeFfh68AnQfrrA+DynAWyJy0BjzbpCqHBR9vQ8isgRvULgiEN9fM4VBJiLheP/Df2+MedkqLvY1h1hfS6zyAiC93cvHW2VdlQ8bAboPGGN8X/OBv+L962rY6ON96IrdPg9davd5KAFewduUMmz09T6IyBzgWWC1MabcKh7Q50GDwiASb8j/FZBnjPlRu6fWAb4RRHcCr7Yrv8MafXMJUG2lkRuBFSKSaI1EWGGVDQuBug/W+4+wrpkMXA4cGJQ3EQD9uA9d2QFMFZFMEXEBt1rXGBYCdR9EJFpEYn2P8f5c5Aa+xsHR1/sgIhOAl4HbjTGH250/sM9DqHvc7XTgTe8MsA/YYx2rgNHAZuAIsAlIss4X4Kd4RxLkAAvbXetu4Kh1fC7U7y0U9wHv6IscvKMrcoB7Qv3egnwfxuBtH64BqqzHcdZzq/COVjkGfD3U7y0U9wHvaJu91rHfBvfhWaCy3bk7212r358HXeZCKaWUnzYfKaWU8tOgoJRSyk+DglJKKT8NCkoppfw0KCillPLToKCUUspPg4JSgIj8VUQWhroeSoWaBgVlG9aMaFt85kVE1zVT/WKLHxBlXyKSYW028lu8Sx7cbm3QsktEXrIWH+v4mhWdnSMi3xSRHSKSKyLPWMsSICIPWhuj7BORF6yyaBF5TkS2i8huEely6WIReVdE5rX7999FZG5X17De03tW/XaJyGVW+dVW+TqG0XIfaogJ9dRuPfQI5gFkAB68m/MkA+8C0dZz/w5803r8V2BhD+cktbvu74AbrcdngAjrcYL19XvAZ31leJcciO6ijncCT1mPp2EtV9DVNYAoINIqn9ru/KuBeiAz1Pddj+F7aIqp7OCkMWariNyAdyer960/8l3Alg7nXtLNOUtE5CG8v5ST8K6v8xretWp+LyJrgbXWuSuAj8u57SIjgQl4N07p6CXgURH5Kt41rX7TwzXOAD+xsos2vIHEZ7sx5nhvbopSndGgoOyg3voqeHesu62bczs9R0QigZ/hXYzvlIh8C+8vaYDrgY8BNwJfF5HZ1nU+aYw51FPljDENIvIW3t2xbgEualeXC65hfe9iYC7eJuDGTt6rUv2ifQrKTrYCl4vIFPC3+0/r5Tm+AFBm9TF8ynreAaQbY97B29QUD8TgXcr8gXb9Dj3t8/AssAbYYc5tsdjVNeKBQmOMB7gd7568SgWEBgVlG8aYUuAu4I8isg9vs1BWb84xxlQBv8TbWb0R75r14P2F/L8ikgPsBtZY534HCAf2ich+69/d1e1DvEtB/7pdcVfX+Blwp4jsteqv2YEKGF06W6khQETG4u3szrIyAKVCQjMFpUJMRO7Au0H71zUgqFDTTEGpQSIi1wJPdCg+boz5RCjqo1RnNCgopZTy0+YjpZRSfhoUlFJK+WlQUEop5adBQSmllN//B5W18lywD0J8AAAAAElFTkSuQmCC\n" }, "metadata": { "needs_background": "light" } }, { "output_type": "display_data", "data": { "text/plain": "<Figure size 432x288 with 1 Axes>", "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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xNNOkAhaWloQkah7ue3duzfgN4p24KO7oT4aSkpKqKurY8OGDdTV1aXUoUCSnYqIDAImAu7pay8ATne264HFzrl5wB3A2cBZwB0i4r37hNItSFU31+LiYtatW8fMmTN54oknmDlzJuvWretQx9JdSMSAvlhwj4h3O26vo/FjZeTIkVGFd3aSXVJZAHwfcL9aTQEeNpbngT4i8mmgGFhvjNlnjNkPrAfOT7J9SpqRqm6u69evp7S0NGDlx9LS0qQPbuuO+NaZd7+5X3jhhVG1E8TSptLa2uqf6t5X2lizZo2n0fgQe0l269at9O7dOyCsd+/ebN261bPtsZKMaXiS5lREZArwjjHm5aBDnwHcS+btdsLChSuKn1R1czXGcPfddweE3X333V2+KioV+NaZ79u3LxkZGfTt2zfqdebd1UHREHy+V328JdmPPvooYHqYjz76KCq7YyFZ0/DEVa4TkWeAgSEOlQO3Y6u+Eo6IXI+tOmPAgAFhe2g0NjbGvJJZLNqA6c2fPva9Z3Z0K6pFG6/v/FA2e71WR6fVhg0beOSRR3j77bc59dRTufLKKz0NJpw6dSq7d+9m9uzZHD58mOzsbC666CKmTp0alQ2x2Pytb32Lm2++2a9dsGABENtqeR2Z1vHEe++99/LUU0/50/rCCy/kpptuSmq869atY/Lkyf607tWrFwsWLGD16tWeryMifPe73w3oahtJ27t3b2bPns2bb77J+PHjueGGG1i6dCm9e/eOqPXZfNlll9HY2Mhll13GO++849nmvn37+u/35ptv5s9//jP79+9P6jO9dOlSZsyYwRlnnEFjYyNnnHEGM2bMYOnSpUydOtXzddrgawBM5AaMBD4AdjpbK7ZdZSCwFChxnfsq8GmgBFjqCg84L9w2evRoE46ampqwx4IZ8eCIiJtXBs960vO58Wrd5wffbzTXiiat4tUuX77cDB061GzcuNGsX7/ebNy40QwdOtQsX748qfHGo504caIBTGlpqXniiSdMaWmpAczEiROjjjue5yOee4423htvvNFkZWWZefPmmbVr15p58+aZrKwsc+ONNyY1XsAcOHDAGHPsfg8cOGBsdtU+OTk5BlvdHrDl5ORE1C5fvtwcf/zxJjs72wAmOzvbHH/88Z6ey3hs9tk4efJks3LlSjN58mR/WDRE+2wApqmpKUDb1NTUJl7g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sUiki3bwrCfDat3HEh2vamMnnewG2mwdEa9qO48WeNFEkfcns/rrj0ARgNMQ3wP4EFgNfFNEckRkKHA68DfgBeB0ERkqIj2wjfmrk2ifoigR8GUUsVS7dafp65VjJHOcyv3A/SJSBxwCrna8Xr2I/BbYBrQC3zHGHAEQkRuxJZdM4H5jTOTht4qidDpSOX19cXEx69ev949ZmTBhAtXV1UmNM11JRlolraRijDlkjLnSGDPCGHOGMWaj61iFMeazxpj/MMasdYWvMcYMd451zelbFaUbkKpZmYuLi1m3bh0zZ87kiSeeYObMmaxbt47i4uLI4m5GstJKR9QripJwGhoauOSSS9qMMD9w4EBS412/fj2lpaUsWrSI2tpaFi1aBNg5vJRAkpVWOkuxoihJIXjerWjm4YoVYwx33313QNjdd9/dIXOdpRvJSit1KoqiJBzfDMpjxozh8ccfZ8yYMQHhyUJEmDNnTkDYnDlzopqAs7uQrLTS6i9FUZJCTk4OmzdvZvPmzf59r2uTxMqECRNYvHgxYCewvOGGG1i8eDETJ05MarzpSLLSSp2KoihJoaWlhcmTJ3PttdfywAMPsHp18kcIVFdXU1xczJIlS1i8eDEiwsSJE7X3VwiSlVbqVBRFSRqvv/46zc3NvP766x0Wpy9T7AprkySbZKSVOhVFUZKGe5ZipXugDfWKoihKwlCnoihK0pg8eTIrV65k8uTJqTZF6SC0+ktRlKQwbNgwVq9e7W+gHzZsGG+88UaKrVKSjZZUFEVJCrt27QqYjHLXrl2RRUrao05FUZSkEM/iYEr6otVfiqIkHN+st4cPH+amm24KCFe6NlpSURQlKcSzFouSvqhTURRFURKGOhVFURQlYahTURRFURKGOhVFURQlYahTURRFURKGOhVFURQlYahTURRFURKGOhVFURQlYahTURRFURKGOhVFURQlYahTURRFURKGOhVFURQlYahTURRFURKGOhVFURQlYSTNqYjIF0TkeRH5p4i8KCJnOeEiIr8QkR0iskVEznBprhaR15zt6mTZpihK8hk1ahQiQlFRESLCqFGjUm2S0gEks6TyU+BHxpgvAD909gEuAE53tuuBxQAikgfcAZwNnAXcISJ9k2ifoihJYtSoUWzdupXJkyezcuVKJk+ezNatW9WxdAOS6VQMcLzz/QTgXef7FOBh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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "search_terms = Q(experimental_method='Electron Microscopy')\n", "filter_results = ['overall_quality','release_year', 'pdb_id']\n", "results = run_search(search_terms, filter_results, number_of_rows=1000000)\n", "pandas_plot_multi_groupby_min(results, 'release_year', 'overall_quality', use_min=True)\n", "pandas_box_plot(results, 'release_year', 'overall_quality')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4) It has been said that all the simple structures have been done and that only complicated structures are left. One metric for \"complicated\" could be size of the assembly - assembly_mol_wt would be useful here." ] }, { "cell_type": "code", "execution_count": 196, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Number of results: 61831\n" }, { "output_type": "display_data", "data": { "text/plain": "<Figure size 432x288 with 1 Axes>", "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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ioceeog77riDmTNncscdd/DQQw/l9DpZn4xh5IBYYTBu3Dj69OnDm2++yejRowG4//77c5y65DTFNOeSdevW0b9/f376059y7733snDhwshtPvzww4wbN46rr76aefPmcfXVVwNw/fXX5+waWU3GMHJAsDBo2bIlV199NePGjePhhx/OddJSUt80N8Xp+psaO3fu5JprronL52uuuSbuC50NjTkZw8gBO3fupH379vTt25dBgwbRt29f2rdvn9PCIBM7d+5kxIgRcWEjRowIlebYdP0VFRVMnTqVioqKJjFdf33o0qVL3GSTXbp0Ca1tTg7ZnIxh5ICCggKuueYa7r//fmbNmsX999/PNddcQ0FBuBbsXPSNFBYW8tBDD8WFPfTQQ6FmFl6yZAnHHXcc7777Lt/97nd59913Oe644xpkuv5cFdjFxcVxAw7CvgSay+/ndO/ePS6vDsRoOHMyjZT6FCLWOdv4Oeyww9i2bRuvv/46u3fv5vXXX2fbtm0cdthhGbX17dzt2LFjXEES9ouLl19+edKmmMsvvzyUfvXq1Wzfvh1VZfv27Q3yUmSuCuz6fJslleON2iEnvtcDHJhh19l8q7kpLGVlZZqKpvJ98JEjR2pBQYHefffdOnPmTL377ru1oKBAR44cGam2Pmk+UNpc2m5IbV5enl555ZVaWFiogBYWFuqVV16peXl5GbWFhYV69913x9m9++67tbCwMKM28dvxZPEN+fpok+liSzbU5bv1seWmm25qMLuqqt26dYuz161bt6zSXFJSopMnT9aSkpLQaa5PPsfiFRUV6aOPPqpFRUVJtcAizaJMzrlTONBLc3AyhYWFeuGFF2pJSYnm5eVpSUmJXnjhhaEKkfoUQPVJ84HS5tJ2XbQjR46McxRhnXlJSYnOnTs3zu7cuXO1pKQkoxbQ7du3x2m3b9+eVUFS1wIslr6Y3Zg+rN3WrVvrgw8+qK1bt25wJ1MX55boWMM41Bh1vTeC6Yudb0M5mfz8/Lg05+fnm5NJXJqDkwG0uLhY586dq7Nnz9a5c+dqcXFx6Btl0KBBKiIKqIjooEGDGuTJrbS0NO6mLi0tzfoYdbWdC219ao2TJk3SI444QouLizUvL0+Li4v1iCOO0EmTJmXUFhYWaqdOneLyulOnTqEeJADt1auXqu473169eoW+t95///047fvvvx95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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "search_terms = Q(experimental_method='Electron Microscopy')\n", "filter_results = ['assembly_mol_wt','release_year', 'pdb_id']\n", "results = run_search(search_terms, filter_results, number_of_rows=1000000)\n", "pandas_box_plot(results, 'release_year', 'assembly_mol_wt')\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.8-final" } }, "nbformat": 4, "nbformat_minor": 2 }