diff --git a/projects/03/main.ipynb b/projects/03/main.ipynb new file mode 100644 index 0000000..828c6c7 --- /dev/null +++ b/projects/03/main.ipynb @@ -0,0 +1,1416 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "42d306b0-e6aa-44ac-bc9b-ae0a55db2b05", + "metadata": {}, + "source": [ + "# Automated interaction statistics" + ] + }, + { + "cell_type": "markdown", + "id": "41f41d4a-84bb-432a-b40f-66f9c8c5a9ec", + "metadata": {}, + "source": [ + "This notebooks aims to provide an automated pipeline to generate interaction statistics for any protein with available protein:ligand complexes in the PDB. The only required parameter is the UniProt ID of the protein of interest." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "793e81c3-6c7b-4438-9539-3b9e9f3df8f5", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "from pathlib import Path\n", + "import urllib\n", + "import zlib\n", + "\n", + "import biotite.database.rcsb as rcsb\n", + "import requests\n", + "from tqdm.auto import tqdm\n", + "\n", + "from plipify.core import Structure\n", + "from plipify.fingerprints import InteractionFingerprint" + ] + }, + { + "cell_type": "markdown", + "id": "69599ad4-6860-401f-a941-62b789262dcd", + "metadata": {}, + "source": [ + "Beside the UniProt ID, one can further customize the PDB query for potential protein:ligand complexes, i.e. number of mutations, experimental method, ligand type and the molecular weight of the co-crystallized ligands." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4a31b498-a319-456c-9c3b-7bb7d1f5870a", + "metadata": {}, + "outputs": [], + "source": [ + "uniprot_id = \"P00519\" # ABL1\n", + "#uniprot_id = \"P00533\" # EGFR\n", + "#uniprot_id = \"Q9NRG4\" # SMYD2\n", + "max_mutation_count = 0\n", + "experimental_method = \"X-RAY DIFFRACTION\"\n", + "ligand_type = \"non-polymer\"\n", + "ligand_mw = (300, 500)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d5bc0894-ee0d-4f3c-a34f-3e1da054f6e6", + "metadata": {}, + "outputs": [], + "source": [ + "HERE = Path(_dh[-1])\n", + "DATA = HERE / \"data\" / uniprot_id\n", + "DATA.mkdir(exist_ok=True, parents=True)" + ] + }, + { + "cell_type": "markdown", + "id": "ffb5b46b-d08f-4f5b-b1d2-88cec903d7df", + "metadata": {}, + "source": [ + "## Collect relevant pdb codes" + ] + }, + { + "cell_type": "markdown", + "id": "d3b130c8-bed6-49f4-bf46-2a607e1adfbf", + "metadata": {}, + "source": [ + "In the next step, biotite's [rcsb module](https://www.biotite-python.org/apidoc/biotite.database.rcsb.html#module-biotite.database.rcsb) will be used to query the PDB for relevant structures. The query is thereby customized by the parameters given above." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4d45bf5a-887a-40b7-8027-f55b67ac599e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 30 structures in the PDB.\n" + ] + } + ], + "source": [ + "query_by_uniprot = rcsb.FieldQuery(\n", + " \"rcsb_polymer_entity_container_identifiers.reference_sequence_identifiers.database_name\",\n", + " exact_match=\"UniProt\"\n", + ")\n", + "query_by_uniprot_id = rcsb.FieldQuery(\n", + " \"rcsb_polymer_entity_container_identifiers.reference_sequence_identifiers.database_accession\",\n", + " exact_match=uniprot_id\n", + ")\n", + "query_mutation_count = rcsb.FieldQuery(\n", + " \"entity_poly.rcsb_mutation_count\",\n", + " range_closed=(0, max_mutation_count)\n", + ")\n", + "query_by_experimental_method = rcsb.FieldQuery(\n", + " \"exptl.method\",\n", + " exact_match=experimental_method\n", + ")\n", + "query_by_ligand_type = rcsb.FieldQuery(\n", + " \"chem_comp.type\",\n", + " exact_match=ligand_type\n", + ")\n", + "query_by_ligand_mw = rcsb.FieldQuery(\n", + " \"chem_comp.formula_weight\",\n", + " range_closed=ligand_mw\n", + ")\n", + "\n", + "results = rcsb.search(\n", + " rcsb.CompositeQuery(\n", + " [\n", + " query_by_uniprot,\n", + " query_by_uniprot_id,\n", + " query_mutation_count,\n", + " query_by_experimental_method,\n", + " query_by_ligand_type,\n", + " query_by_ligand_mw\n", + " ],\n", + " operator=\"and\"\n", + " ),\n", + " return_type=\"polymer_instance\"\n", + ")\n", + "pdbs = []\n", + "for result in results:\n", + " pdb_id, chain = result.split(\".\")\n", + " pdbs.append({\"pdb_id\": pdb_id, \"chain\": chain})\n", + "\n", + "print(f\"Found {len(pdbs)} structures in the PDB.\")" + ] + }, + { + "cell_type": "markdown", + "id": "608f6a44-2008-416b-a0f7-b1f2ae45836a", + "metadata": {}, + "source": [ + "## Collect ligands bound to PDB structures" + ] + }, + { + "cell_type": "markdown", + "id": "9a621980-edc0-47f8-9216-989e715f4731", + "metadata": {}, + "source": [ + "Currently, it's not possible to query the PDB about co-crystallized ligands in a programmatic fashion. Hence, we will perform manual requests and directly filter for ligands with a matching molecular weight." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "cbe65d45-0d5b-466e-a453-e07ed5fa4515", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e9628694bdc8490db6121878b561320c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/30 [00:00\n", + "#T_0d89f_row0_col0{\n", + " background-color: #102369;\n", + " color: #f1f1f1;\n", + " }#T_0d89f_row0_col1,#T_0d89f_row0_col2,#T_0d89f_row0_col3,#T_0d89f_row0_col4,#T_0d89f_row0_col5,#T_0d89f_row0_col6,#T_0d89f_row1_col1,#T_0d89f_row1_col2,#T_0d89f_row1_col3,#T_0d89f_row1_col4,#T_0d89f_row1_col5,#T_0d89f_row1_col6,#T_0d89f_row2_col1,#T_0d89f_row2_col2,#T_0d89f_row2_col3,#T_0d89f_row2_col4,#T_0d89f_row2_col5,#T_0d89f_row2_col6,#T_0d89f_row3_col1,#T_0d89f_row3_col3,#T_0d89f_row3_col5,#T_0d89f_row3_col6,#T_0d89f_row4_col1,#T_0d89f_row4_col2,#T_0d89f_row4_col3,#T_0d89f_row4_col4,#T_0d89f_row4_col5,#T_0d89f_row5_col2,#T_0d89f_row5_col3,#T_0d89f_row5_col4,#T_0d89f_row5_col6,#T_0d89f_row6_col1,#T_0d89f_row6_col2,#T_0d89f_row6_col3,#T_0d89f_row6_col4,#T_0d89f_row6_col5,#T_0d89f_row6_col6,#T_0d89f_row7_col1,#T_0d89f_row7_col2,#T_0d89f_row7_col3,#T_0d89f_row7_col4,#T_0d89f_row7_col5,#T_0d89f_row7_col6,#T_0d89f_row8_col1,#T_0d89f_row8_col2,#T_0d89f_row8_col3,#T_0d89f_row8_col4,#T_0d89f_row8_col5,#T_0d89f_row8_col6,#T_0d89f_row9_col1,#T_0d89f_row9_col2,#T_0d89f_row9_col3,#T_0d89f_row9_col4,#T_0d89f_row9_col5,#T_0d89f_row9_col6,#T_0d89f_row10_col3,#T_0d89f_row10_col4,#T_0d89f_row10_col5,#T_0d89f_row10_col6,#T_0d89f_row11_col0,#T_0d89f_row11_col1,#T_0d89f_row11_col3,#T_0d89f_row11_col4,#T_0d89f_row11_col5,#T_0d89f_row11_col6,#T_0d89f_row12_col1,#T_0d89f_row12_col2,#T_0d89f_row12_col3,#T_0d89f_row12_col5,#T_0d89f_row12_col6,#T_0d89f_row13_col0,#T_0d89f_row13_col3,#T_0d89f_row13_col4,#T_0d89f_row13_col5,#T_0d89f_row13_col6,#T_0d89f_row14_col1,#T_0d89f_row14_col2,#T_0d89f_row14_col3,#T_0d89f_row14_col4,#T_0d89f_row14_col5,#T_0d89f_row14_col6,#T_0d89f_row15_col0,#T_0d89f_row15_col2,#T_0d89f_row15_col3,#T_0d89f_row15_col4,#T_0d89f_row15_col5,#T_0d89f_row15_col6,#T_0d89f_row16_col0,#T_0d89f_row16_col2,#T_0d89f_row16_col3,#T_0d89f_row16_col4,#T_0d89f_row16_col5,#T_0d89f_row16_col6,#T_0d89f_row17_col0,#T_0d89f_row17_col2,#T_0d89f_row17_col3,#T_0d89f_row17_col4,#T_0d89f_row17_col5,#T_0d89f_row17_col6,#T_0d89f_row18_col0,#T_0d89f_row18_col2,#T_0d89f_row18_col3,#T_0d89f_row18_col4,#T_0d89f_row18_col5,#T_0d89f_row18_col6,#T_0d89f_row19_col1,#T_0d89f_row19_col2,#T_0d89f_row19_col3,#T_0d89f_row19_col4,#T_0d89f_row19_col5,#T_0d89f_row19_col6,#T_0d89f_row20_col1,#T_0d89f_row20_col2,#T_0d89f_row20_col3,#T_0d89f_row20_col4,#T_0d89f_row20_col5,#T_0d89f_row20_col6,#T_0d89f_row21_col1,#T_0d89f_row21_col2,#T_0d89f_row21_col3,#T_0d89f_row21_col4,#T_0d89f_row21_col5,#T_0d89f_row21_col6,#T_0d89f_row22_col0,#T_0d89f_row22_col1,#T_0d89f_row22_col2,#T_0d89f_row22_col3,#T_0d89f_row22_col4,#T_0d89f_row22_col6,#T_0d89f_row23_col0,#T_0d89f_row23_col1,#T_0d89f_row23_col3,#T_0d89f_row23_col4,#T_0d89f_row23_col5,#T_0d89f_row23_col6,#T_0d89f_row24_col1,#T_0d89f_row24_col2,#T_0d89f_row24_col3,#T_0d89f_row24_col4,#T_0d89f_row24_col5,#T_0d89f_row24_col6,#T_0d89f_row25_col1,#T_0d89f_row25_col2,#T_0d89f_row25_col3,#T_0d89f_row25_col4,#T_0d89f_row25_col5,#T_0d89f_row25_col6,#T_0d89f_row26_col2,#T_0d89f_row26_col4,#T_0d89f_row26_col5,#T_0d89f_row26_col6,#T_0d89f_row27_col1,#T_0d89f_row27_col2,#T_0d89f_row27_col3,#T_0d89f_row27_col4,#T_0d89f_row27_col5,#T_0d89f_row27_col6,#T_0d89f_row28_col0,#T_0d89f_row28_col2,#T_0d89f_row28_col3,#T_0d89f_row28_col4,#T_0d89f_row28_col5,#T_0d89f_row28_col6,#T_0d89f_row29_col0,#T_0d89f_row29_col1,#T_0d89f_row29_col2,#T_0d89f_row29_col3,#T_0d89f_row29_col4,#T_0d89f_row29_col5,#T_0d89f_row30_col1,#T_0d89f_row30_col2,#T_0d89f_row30_col3,#T_0d89f_row30_col4,#T_0d89f_row30_col5,#T_0d89f_row30_col6,#T_0d89f_row31_col1,#T_0d89f_row31_col3,#T_0d89f_row31_col4,#T_0d89f_row31_col5,#T_0d89f_row31_col6,#T_0d89f_row32_col1,#T_0d89f_row32_col2,#T_0d89f_row32_col3,#T_0d89f_row32_col4,#T_0d89f_row32_col5,#T_0d89f_row32_col6,#T_0d89f_row33_col3,#T_0d89f_row33_col4,#T_0d89f_row33_col5,#T_0d89f_row33_col6,#T_0d89f_row34_col1,#T_0d89f_row34_col2,#T_0d89f_row34_col3,#T_0d89f_row34_col4,#T_0d89f_row34_col5,#T_0d89f_row34_col6,#T_0d89f_row35_col1,#T_0d89f_row35_col2,#T_0d89f_row35_col3,#T_0d89f_row35_col4,#T_0d89f_row35_col5,#T_0d89f_row35_col6{\n", + " background-color: #ffffd9;\n", + " color: #000000;\n", + " }#T_0d89f_row1_col0{\n", + " background-color: #5dc0c0;\n", + " color: #000000;\n", + " }#T_0d89f_row2_col0,#T_0d89f_row4_col6,#T_0d89f_row6_col0,#T_0d89f_row21_col0,#T_0d89f_row23_col2,#T_0d89f_row33_col0,#T_0d89f_row33_col1{\n", + " background-color: #f5fbc2;\n", + " color: #000000;\n", + " }#T_0d89f_row3_col0,#T_0d89f_row25_col0,#T_0d89f_row28_col1,#T_0d89f_row29_col6,#T_0d89f_row31_col2,#T_0d89f_row34_col0,#T_0d89f_row35_col0{\n", + " background-color: #e7f6b1;\n", + " color: #000000;\n", + " }#T_0d89f_row3_col2,#T_0d89f_row3_col4,#T_0d89f_row5_col1,#T_0d89f_row8_col0,#T_0d89f_row11_col2,#T_0d89f_row12_col4,#T_0d89f_row14_col0,#T_0d89f_row15_col1,#T_0d89f_row16_col1,#T_0d89f_row18_col1,#T_0d89f_row22_col5,#T_0d89f_row30_col0{\n", + " background-color: #fafdce;\n", + " color: #000000;\n", + " }#T_0d89f_row4_col0,#T_0d89f_row5_col0{\n", + " background-color: #4ab9c3;\n", + " color: #000000;\n", + " }#T_0d89f_row5_col5,#T_0d89f_row17_col1,#T_0d89f_row32_col0,#T_0d89f_row33_col2{\n", + " background-color: #eff9b6;\n", + " color: #000000;\n", + " }#T_0d89f_row7_col0{\n", + " background-color: #83cebb;\n", + " color: #000000;\n", + " }#T_0d89f_row9_col0,#T_0d89f_row24_col0,#T_0d89f_row27_col0{\n", + " background-color: #2354a3;\n", + " color: #f1f1f1;\n", + " }#T_0d89f_row10_col0{\n", + " background-color: #1f80b8;\n", + " color: #000000;\n", + " }#T_0d89f_row10_col1,#T_0d89f_row10_col2{\n", + " background-color: #3cb1c3;\n", + " color: #000000;\n", + " }#T_0d89f_row12_col0,#T_0d89f_row19_col0{\n", + " background-color: #6fc7bd;\n", + " color: #000000;\n", + " }#T_0d89f_row13_col1{\n", + " background-color: #081d58;\n", + " color: #f1f1f1;\n", + " }#T_0d89f_row13_col2{\n", + " background-color: #97d6b9;\n", + " color: #000000;\n", + " }#T_0d89f_row20_col0,#T_0d89f_row31_col0{\n", + " background-color: #d0edb3;\n", + " color: #000000;\n", + " }#T_0d89f_row26_col0{\n", + " background-color: #1d8ebf;\n", + " color: #000000;\n", + " }#T_0d89f_row26_col1{\n", + " background-color: #269bc1;\n", + " color: #000000;\n", + " }#T_0d89f_row26_col3{\n", + " background-color: #aedfb6;\n", + " color: #000000;\n", + " }\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hydrophobic hbond-don hbond-acc saltbridge pistacking pication halogen
24826000000
25612000000
2612000000
2644010100
26913000002
27113100030
2932000000
29910000000
3021000000
31321000000
3151814140000
3160010000
31711000100
31802790000
3201000000
3210100000
3220100000
3320300000
3370100000
34011000000
3416000000
3592000000
3610000010
3670020000
37021000000
3804000000
381171608000
38221000000
4150400000
4290000004
4321000000
4336040000
4353000000
4622230000
4654000000
4684000000
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fp = InteractionFingerprint().calculate_fingerprint(\n", + " structures,\n", + " residue_indices=pocket_mappings,\n", + " labeled=True, \n", + " as_dataframe=True, \n", + " remove_non_interacting_residues=True,\n", + " remove_empty_interaction_types=True,\n", + " ensure_same_sequence=False\n", + " )\n", + "\n", + "if not fp.values.shape[0]:\n", + " raise ValueError(\"Fingerprint is empty!\")\n", + "\n", + "fp.style.background_gradient(axis=None, cmap=\"YlGnBu\")" + ] + }, + { + "cell_type": "markdown", + "id": "89faece2-75a3-4951-9e06-175e02c73c68", + "metadata": {}, + "source": [ + "## Apply KLIFS residue numbering" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "7e27ce79-b702-46f7-bdcb-352140941825", + "metadata": {}, + "outputs": [], + "source": [ + "from opencadd.databases.klifs import setup_remote" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4f26bc62-5348-444d-80ec-ba3fdce06b12", + "metadata": {}, + "outputs": [], + "source": [ + "# Set up remote session\n", + "klifs = setup_remote()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "107e1799-f206-4f56-9e31-34a5dee3c978", + "metadata": {}, + "outputs": [], + "source": [ + "klifs_kinase_id = 1061 # ABL1 4WA9\n", + "pocket = klifs.pockets.by_structure_klifs_id(klifs_kinase_id)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "147b1374-e06b-443a-b32c-7484154b8eb3", + "metadata": {}, + "outputs": [], + "source": [ + "for index in fp.index:\n", + " try:\n", + " klifs_resid = int(pocket[pocket[\"residue.id\"] == str(index)][\"residue.klifs_id\"].iloc[0])\n", + " except IndexError:\n", + " continue\n", + " fp.rename(index={index: f\"KLI{klifs_resid:02d}\"}, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "27b56195-2db4-43fc-a3da-7d5b4653850c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hydrophobic hbond-don hbond-acc saltbridge pistacking pication halogen
KLI0326000000
KLI1112000000
2612000000
2644010100
KLI1513000002
KLI1713100030
KLI312000000
KLI3610000000
KLI391000000
KLI4321000000
KLI451814140000
KLI460010000
KLI4711000100
KLI4802790000
KLI501000000
KLI510100000
KLI520100000
3320300000
3370100000
34011000000
3416000000
KLI662000000
KLI680000010
KLI740020000
KLI7721000000
KLI804000000
KLI81171608000
KLI8221000000
4150400000
4290000004
4321000000
4336040000
4353000000
4622230000
4654000000
4684000000
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fp.style.background_gradient(axis=None, cmap=\"YlGnBu\")" + ] + } + ], + "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.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}