From b6296af4d98ddf047e915f74419db152d22266ba Mon Sep 17 00:00:00 2001 From: cmungall Date: Sat, 29 Apr 2023 18:51:12 +0200 Subject: [PATCH 1/4] using jinja templates for enrichment prompts --- Makefile | 5 +- notebooks/Enrichment-Results-Analysis.ipynb | 16238 +++++++++++----- poetry.lock | 90 +- pyproject.toml | 1 + src/ontogpt/cli.py | 29 +- src/ontogpt/engines/enrichment.py | 120 +- .../evaluation/enrichment/eval_enrichment.py | 3 +- src/ontogpt/prompts/enrichment/__init__.py | 4 + .../enrichment/gene_set_summarization.jinja2 | 11 +- 9 files changed, 11168 insertions(+), 5333 deletions(-) diff --git a/Makefile b/Makefile index fade544c8..55b196c08 100644 --- a/Makefile +++ b/Makefile @@ -130,6 +130,9 @@ analysis/enrichment/%-results-$(N).yaml: tests/input/genesets/%.yaml $(RUN) ontogpt -vv eval-enrichment -n $(N) -U $< -o $@.tmp && mv $@.tmp $@ analysis/enrichment-summary.yaml: - cat analysis/enrichment/*yaml > $@ + cat analysis/enrichment/*-$(N)yaml > $@ + +analysis/enrichment-summary-$(N).yaml: + cat analysis/enrichment/*-$(N).yaml > $@ all_enrich: $(patsubst %, analysis/enrichment/%-results-$(N).yaml, $(GENE_SETS)) diff --git a/notebooks/Enrichment-Results-Analysis.ipynb b/notebooks/Enrichment-Results-Analysis.ipynb index 61b7a8651..24a7c8694 100644 --- a/notebooks/Enrichment-Results-Analysis.ipynb +++ b/notebooks/Enrichment-Results-Analysis.ipynb @@ -24,7 +24,22 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 97, + "id": "3452b4b0", + "metadata": { + "tags": [ + "parameters" + ] + }, + "outputs": [], + "source": [ + "# parameters\n", + "experiment_results = \"analysis/enrichment-summary.yaml\"" + ] + }, + { + "cell_type": "code", + "execution_count": 98, "id": "97e39d4a", "metadata": {}, "outputs": [], @@ -41,8 +56,8 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "2aadb3b0", + "execution_count": 99, + "id": "293db399", "metadata": {}, "outputs": [], "source": [ @@ -54,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 147, "id": "9b0990c0", "metadata": {}, "outputs": [], @@ -87,6 +102,7 @@ "NOVEL = \"novel\"\n", "NOVEL_LABELS = \"novel labels\"\n", "NUM_NOVEL = \"num novel\"\n", + "GENE_RANDOMIZATION_FACTOR = \"gene_randomization_factor\"\n", "\n", "\n", "TURBO = \"gpt-3.5-turbo\"\n", @@ -96,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 148, "id": "e16189b3", "metadata": {}, "outputs": [], @@ -106,14 +122,14 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 149, "id": "ca76b18a", "metadata": {}, "outputs": [], "source": [ "# assumes comparisons have been run and concatenated (see Makefile) \n", "def load_comparisons():\n", - " with open(f\"../analysis/enrichment-summary.yaml\") as f:\n", + " with open(f\"../{experiment_results}\") as f:\n", " obj = yaml.load(f, Loader)\n", " comps = [GeneSetComparison(**x) for x in obj]\n", " return comps" @@ -121,7 +137,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 150, "id": "ebab4da5", "metadata": {}, "outputs": [], @@ -131,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 151, "id": "1eec3e01", "metadata": {}, "outputs": [ @@ -141,7 +157,7 @@ "['GO:0005773', 'GO:0005634', 'GO:0008150']" ] }, - "execution_count": 12, + "execution_count": 151, "metadata": {}, "output_type": "execute_result" } @@ -172,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 152, "id": "1ad7746a", "metadata": {}, "outputs": [ @@ -202,11 +218,11 @@ " geneset\n", " truncation factor\n", " source geneset\n", + " gene_randomization_factor\n", " has top hit\n", " rank\n", " in top 5\n", " in top 10\n", - " size overlap\n", " ...\n", " num terms\n", " num unparsed\n", @@ -226,95 +242,95 @@ " gpt-3.5-turbo\n", " no_synopsis\n", " EDS-0\n", - " 1.000\n", + " 1.0\n", " EDS\n", + " 0\n", " True\n", - " 2.0\n", - " True\n", + " 5.0\n", + " False\n", " True\n", - " 3\n", " ...\n", - " 5\n", - " 5\n", - " [3.341122685366184e-06, 1.0, 5.591343976855226...\n", - " 1.000000\n", - " 5.591344e-11\n", - " 0.400044\n", - " 0.600000\n", - " [GO:0030574, GO:0010712]\n", - " [collagen catabolic process, regulation of col...\n", - " 2\n", + " 10\n", + " 10\n", + " [3.341122685366184e-06, 0.00026467316824618385, 1.0, 1.0, 5.591343976855226e-11, 1.0, 1.0, 1.0, 1.0]\n", + " 1.00\n", + " 5.59e-11\n", + " 6.67e-01\n", + " 0.33\n", + " [GO:0033197, GO:0010710, GO:0032966]\n", + " [response to vitamin E, regulation of collagen catabolic process, negative regulation of collagen biosynthetic process]\n", + " 3\n", " \n", " \n", " 1\n", " gpt-3.5-turbo\n", " ontological_synopsis\n", " EDS-0\n", - " 1.000\n", + " 1.0\n", " EDS\n", - " False\n", - " NaN\n", - " False\n", - " False\n", - " 2\n", + " 0\n", + " True\n", + " 0.0\n", + " True\n", + " True\n", " ...\n", - " 3\n", - " 3\n", - " [3.341122685366184e-06, 1.0, 0.000216344273687...\n", - " 1.000000\n", - " 3.341123e-06\n", - " 0.333407\n", - " 0.666667\n", - " [GO:0032964]\n", - " [collagen biosynthetic process]\n", - " 1\n", + " 4\n", + " 4\n", + " [5.591343976855226e-11, 3.341122685366184e-06, 1.0, 0.013894831001982877]\n", + " 1.00\n", + " 5.59e-11\n", + " 2.53e-01\n", + " 0.75\n", + " []\n", + " []\n", + " 0\n", " \n", " \n", " 2\n", " gpt-3.5-turbo\n", " narrative_synopsis\n", " EDS-0\n", - " 1.000\n", - " EDS\n", - " True\n", " 1.0\n", - " True\n", - " True\n", - " 2\n", + " EDS\n", + " 0\n", + " False\n", + " NaN\n", + " False\n", + " False\n", " ...\n", - " 5\n", - " 5\n", - " [3.341122685366184e-06, 5.591343976855226e-11,...\n", - " 1.000000\n", - " 5.591344e-11\n", - " 0.600001\n", - " 0.400000\n", - " [GO:0061448, GO:0032965, GO:1901201]\n", - " [connective tissue development, regulation of ...\n", " 3\n", + " 3\n", + " [1.0, 3.341122685366184e-06, 1.0]\n", + " 1.00\n", + " 3.34e-06\n", + " 6.67e-01\n", + " 0.33\n", + " []\n", + " []\n", + " 0\n", " \n", " \n", " 3\n", " text-davinci-003\n", " no_synopsis\n", " EDS-0\n", - " 1.000\n", + " 1.0\n", " EDS\n", + " 0\n", " False\n", " NaN\n", " False\n", " False\n", - " 2\n", " ...\n", - " 6\n", - " 6\n", - " [2.0273650307569266e-05, 1.0, 0.00119121077281...\n", - " 1.000000\n", - " 2.027365e-05\n", - " 0.500303\n", - " 0.500000\n", - " [GO:0009451, GO:0032502]\n", - " [RNA modification, developmental process]\n", + " 10\n", + " 10\n", + " [1.0, 1.0, 0.00211738721495877, 0.00119121077281765, 1.0, 0.0003206219640437401, 1.0, 1.0, 1.0]\n", + " 1.00\n", + " 3.21e-04\n", + " 6.67e-01\n", + " 0.33\n", + " [GO:0006457, GO:0098631]\n", + " [protein folding, cell adhesion mediator activity]\n", " 2\n", " \n", " \n", @@ -322,24 +338,24 @@ " text-davinci-003\n", " ontological_synopsis\n", " EDS-0\n", - " 1.000\n", + " 1.0\n", " EDS\n", + " 0\n", " False\n", " NaN\n", " False\n", " False\n", - " 2\n", " ...\n", - " 8\n", - " 8\n", - " [1.0, 0.0003206219640437401, 1.0, 1.0, 3.34112...\n", - " 1.000000\n", - " 3.341123e-06\n", - " 0.600065\n", - " 0.400000\n", - " [GO:0043394, GO:0005518, GO:0006956]\n", - " [proteoglycan binding, collagen binding, compl...\n", - " 3\n", + " 15\n", + " 15\n", + " [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n", + " 1.00\n", + " 1.00e+00\n", + " 1.00e+00\n", + " 0.00\n", + " []\n", + " []\n", + " 0\n", " \n", " \n", " ...\n", @@ -366,128 +382,128 @@ " ...\n", " \n", " \n", - " 515\n", - " text-davinci-003\n", - " narrative_synopsis\n", - " tf-downreg-colorectal-1\n", - " 0.512\n", - " tf-downreg-colorectal\n", - " False\n", - " NaN\n", - " False\n", - " False\n", - " 1\n", - " ...\n", - " 10\n", - " 10\n", - " [6.884538416513159e-05, 1.0]\n", - " 1.000000\n", - " 6.884538e-05\n", - " 0.500034\n", - " 0.500000\n", - " [GO:0004879]\n", - " [nuclear receptor activity]\n", - " 1\n", - " \n", - " \n", - " 516\n", + " 567\n", " N/A\n", " standard\n", " tf-downreg-colorectal-1\n", - " 1.000\n", + " 1.0\n", " tf-downreg-colorectal\n", + " 1\n", " True\n", " 0.0\n", " True\n", " True\n", - " 164\n", " ...\n", - " 165\n", - " 165\n", - " [1.5866410096162855e-26, 1.6180289475740402e-2...\n", - " 0.049553\n", - " 1.586641e-26\n", - " 0.003398\n", - " 1.000000\n", + " 181\n", + " 181\n", + " [4.988150254572451e-28, 5.089713278078831e-28, 6.222732503665588e-28, 2.5181292279890926e-26, 6.360582827326825e-26, 6.280681710633612e-25, 1.992067137890145e-24, 2.160407927771538e-24, 1.531197330767613e-23, 4.406686617875145e-23, 4.520132491659314e-23, 6.047956648850335e-23, 1.42513668286587e-22, 8.082830272613584e-22, 8.280409536451057e-22, 8.457494137576952e-22, 1.1587498886554318e-21, 2.0257524856083073e-21, 2.0803834350443526e-21, 3.470732713187183e-21, 1.463206966124319e-20, 2.506621557484459e-20, 3.054326526778521e-20, 4.839153573691595e-20, 5.101482454717162e-20, 7.808298808825646e-20, 8.868663592283121e-20, 9.993781841681446e-20, 1.0673363321867488e-19, 1.4998597499692998e-19, 1.4998597499692998e-19, 1.5457242764238197e-19, 1.6672250732819605e-19, 1.7114716194746733e-19, 2.406266603748282e-19, 2.4372228200848596e-19, 6.105038238036257e-19, 6.223983270815405e-19, 2.1235204181331734e-18, 2.4355875541881905e-18, 3.662762983506111e-18, 7.451648490886942e-18, 8.396417265824472e-18, 1.0890888827682343e-17, 1.8698967218267112e-17, 2.2078693923148846e-17, 2.5929122360808936e-17, 2.6263604428984028e-17, 3.3376438896625706e-17, 6.312097805142557e-17, 8.44210610764168e-17, 8.780853612258093e-17, 1.256794485435431e-16, 1.3634794047439367e-16, 1.7837718872524886e-16, 2.4682080854405927e-16, 2.528147790145545e-16, 2.84294367797696e-16, 1.3672391972253508e-15, 2.1122706998882423e-15, 2.262163598395585e-15, 2.3769365136746476e-15, 4.807871263219351e-15, 5.098145395239435e-15, 1.2816384484550604e-14, 1.313426426557983e-14, 1.863045482048372e-14, 1.9962778658494635e-14, 3.292811708352154e-14, 4.077674313669671e-14, 6.01177100081973e-14, 2.4957312733595376e-13, 2.864021009704981e-13, 2.9810617943360497e-13, 5.819244888328512e-13, 8.540048474946289e-13, 1.0377360388259339e-12, 1.1099602352756002e-12, 1.1849888758335027e-12, 1.2843592203666209e-12, 1.3338484106013712e-12, 1.3853402724665883e-12, 3.0389767852861082e-12, 7.446509980199845e-12, 9.24102116663525e-12, 1.1186070559309425e-10, 1.142136997598513e-10, 1.142136997598513e-10, 1.142136997598513e-10, 1.5338271728466858e-10, 5.707617974294617e-10, 2.1038940769888833e-09, 2.3785166500474574e-09, 4.56636746104505e-08, 4.896484580823067e-08, 7.071552977186578e-08, 1.1027883530329518e-07, 1.4803215188043313e-07, 2.0238207019879306e-07, 2.40027403455946e-07, ...]\n", + " 0.04\n", + " 4.99e-28\n", + " 4.15e-03\n", + " 1.00\n", " []\n", " []\n", " 0\n", " \n", " \n", - " 517\n", + " 568\n", " N/A\n", " standard_no_ontology\n", " tf-downreg-colorectal-1\n", - " 1.000\n", + " 1.0\n", " tf-downreg-colorectal\n", + " 1\n", " False\n", " NaN\n", " False\n", " False\n", - " 35\n", " ...\n", - " 37\n", - " 37\n", - " [1.1295219713092072e-18, 1.9857953479901853e-1...\n", - " 1.000000\n", - " 2.444887e-26\n", - " 0.056529\n", - " 0.945946\n", - " [GO:0031018, GO:0140467]\n", - " [endocrine pancreas development, integrated st...\n", - " 2\n", + " 38\n", + " 38\n", + " [9.993781841681446e-20, 5.101482454717162e-20, 1.0890888827682343e-17, 3.0389767852861082e-12, 1.2816384484550604e-14, 1.1849888758335027e-12, 1.4998597499692998e-19, 8.082830272613584e-22, 9.24102116663525e-12, 2.5181292279890926e-26, 2.1038940769888833e-09, 1.5338271728466858e-10, 1.4803215188043313e-07, 2.2078693923148846e-17, 8.44210610764168e-17, 4.6074946792391266e-05, 7.698187260692121e-06, 1.992309673557265e-05, 2.772550857289152e-07, 1.0751034116409277e-06, 5.707617974294617e-10, 2.0257524856083073e-21, 4.406686617875145e-23, 2.9810617943360497e-13, 3.054326526778521e-20, 0.0017556171417364651, 5.819244888328512e-13, 0.013364132777108115, 0.01830361381899467, 1.0377360388259339e-12, 1.0, 1.0, 0.04072498754549389, 7.090779938263196e-05, 0.0002413697629437105, 1.0, 1.0, 1.0]\n", + " 1.00\n", + " 2.52e-26\n", + " 1.34e-01\n", + " 0.87\n", + " []\n", + " []\n", + " 0\n", " \n", " \n", - " 518\n", + " 569\n", " N/A\n", " random\n", " tf-downreg-colorectal-1\n", - " 1.000\n", + " 1.0\n", " tf-downreg-colorectal\n", + " 1\n", " False\n", " NaN\n", " False\n", " False\n", - " 5\n", " ...\n", - " 48\n", - " 48\n", - " [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...\n", - " 1.000000\n", - " 2.559980e-20\n", - " 0.895834\n", - " 0.104167\n", - " [GO:0048490, GO:0060465, GO:0072562, GO:000410...\n", - " [anterograde synaptic vesicle transport, phary...\n", - " 43\n", - " \n", - " \n", - " 519\n", + " 49\n", + " 49\n", + " [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 5.101482454717162e-20, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0751034116409277e-06, 1.0, 4.406686617875145e-23, 1.0, 1.0, 1.0, 1.0, 2.5181292279890926e-26, 1.8698967218267112e-17, 1.5338271728466858e-10, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 9.24102116663525e-12, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.1849888758335027e-12, 1.0, 1.0, 1.0, 1.0]\n", + " 1.00\n", + " 2.52e-26\n", + " 8.37e-01\n", + " 0.16\n", + " [GO:0021549, GO:0050911, GO:0035608, GO:1904261, GO:0005789, GO:0030218, GO:0007080, GO:0043560, GO:1905370, GO:0000725, GO:0000028, GO:2000270, GO:0000049, GO:0060687, GO:0015631, GO:1902774]\n", + " [cerebellum development, detection of chemical stimulus involved in sensory perception of smell, protein deglutamylation, positive regulation of basement membrane assembly involved in embryonic body morphogenesis, endoplasmic reticulum membrane, erythrocyte differentiation, mitotic metaphase plate congression, insulin receptor substrate binding, serine-type endopeptidase complex, recombinational repair, ribosomal small subunit assembly, negative regulation of fibroblast apoptotic process, tRNA binding, regulation of branching involved in prostate gland morphogenesis, tubulin binding, late endosome to lysosome transport]\n", + " 16\n", + " \n", + " \n", + " 570\n", " N/A\n", " rank_based\n", " tf-downreg-colorectal-1\n", - " 1.000\n", + " 1.0\n", " tf-downreg-colorectal\n", + " 1\n", " False\n", " NaN\n", " False\n", " False\n", - " 17\n", " ...\n", " 51\n", " 51\n", - " [1.0, 1.0, 1.0, 1.0, 4.612783462092152e-17, 7....\n", - " 1.000000\n", - " 2.444887e-26\n", - " 0.667483\n", - " 0.333333\n", - " [GO:0005509, GO:0042802, GO:0003674, GO:000582...\n", - " [calcium ion binding, identical protein bindin...\n", - " 34\n", + " [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 5.101482454717162e-20, 1.0, 1.0, 2.0257524856083073e-21, 8.082830272613584e-22, 1.0, 1.0, 1.0, 5.746621615633877e-07, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 4.406686617875145e-23, 1.0, 1.0, 2.5181292279890926e-26, 1.0, 1.5338271728466858e-10, 1.0, 1.0, 0.004817572706188025, 1.0, 1.0, 0.0065935552067459295, 1.4998597499692998e-19, 1.0, 9.993781841681446e-20, 1.0, 2.2078693923148846e-17, 1.0, 1.0, 1.0, 0.0002413697629437105, 1.0, 9.24102116663525e-12, 1.2816384484550604e-14, 1.0890888827682343e-17, 1.0, 1.0, 1.1849888758335027e-12, 1.0, 1.0]\n", + " 1.00\n", + " 2.52e-26\n", + " 6.67e-01\n", + " 0.33\n", + " [GO:0005789, GO:0004930, GO:0005509, GO:0000139, GO:0007186]\n", + " [endoplasmic reticulum membrane, G protein-coupled receptor activity, calcium ion binding, Golgi membrane, G protein-coupled receptor signaling pathway]\n", + " 5\n", + " \n", + " \n", + " 571\n", + " N/A\n", + " closure\n", + " tf-downreg-colorectal-1\n", + " 1.0\n", + " tf-downreg-colorectal\n", + " 1\n", + " True\n", + " 46.0\n", + " False\n", + " False\n", + " ...\n", + " 3965\n", + " 3965\n", + " [1.0, 1.0, 1.0, 1.0, 1.0, 3.839829331449604e-05, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.1027883530329518e-07, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 4.988150254572451e-28, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.40027403455946e-07, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...]\n", + " 1.00\n", + " 4.99e-28\n", + " 9.38e-01\n", + " 0.06\n", + " []\n", + " []\n", + " 0\n", " \n", " \n", "\n", - "

520 rows × 29 columns

\n", + "

572 rows × 30 columns

\n", "" ], "text/plain": [ @@ -498,94 +514,107 @@ "3 text-davinci-003 no_synopsis EDS-0 \n", "4 text-davinci-003 ontological_synopsis EDS-0 \n", ".. ... ... ... \n", - "515 text-davinci-003 narrative_synopsis tf-downreg-colorectal-1 \n", - "516 N/A standard tf-downreg-colorectal-1 \n", - "517 N/A standard_no_ontology tf-downreg-colorectal-1 \n", - "518 N/A random tf-downreg-colorectal-1 \n", - "519 N/A rank_based tf-downreg-colorectal-1 \n", + "567 N/A standard tf-downreg-colorectal-1 \n", + "568 N/A standard_no_ontology tf-downreg-colorectal-1 \n", + "569 N/A random tf-downreg-colorectal-1 \n", + "570 N/A rank_based tf-downreg-colorectal-1 \n", + "571 N/A closure tf-downreg-colorectal-1 \n", "\n", - " truncation factor source geneset has top hit rank in top 5 \\\n", - "0 1.000 EDS True 2.0 True \n", - "1 1.000 EDS False NaN False \n", - "2 1.000 EDS True 1.0 True \n", - "3 1.000 EDS False NaN False \n", - "4 1.000 EDS False NaN False \n", - ".. ... ... ... ... ... \n", - "515 0.512 tf-downreg-colorectal False NaN False \n", - "516 1.000 tf-downreg-colorectal True 0.0 True \n", - "517 1.000 tf-downreg-colorectal False NaN False \n", - "518 1.000 tf-downreg-colorectal False NaN False \n", - "519 1.000 tf-downreg-colorectal False NaN False \n", + " truncation factor source geneset gene_randomization_factor \\\n", + "0 1.0 EDS 0 \n", + "1 1.0 EDS 0 \n", + "2 1.0 EDS 0 \n", + "3 1.0 EDS 0 \n", + "4 1.0 EDS 0 \n", + ".. ... ... ... \n", + "567 1.0 tf-downreg-colorectal 1 \n", + "568 1.0 tf-downreg-colorectal 1 \n", + "569 1.0 tf-downreg-colorectal 1 \n", + "570 1.0 tf-downreg-colorectal 1 \n", + "571 1.0 tf-downreg-colorectal 1 \n", "\n", - " in top 10 size overlap ... num terms num unparsed \\\n", - "0 True 3 ... 5 5 \n", - "1 False 2 ... 3 3 \n", - "2 True 2 ... 5 5 \n", - "3 False 2 ... 6 6 \n", - "4 False 2 ... 8 8 \n", - ".. ... ... ... ... ... \n", - "515 False 1 ... 10 10 \n", - "516 True 164 ... 165 165 \n", - "517 False 35 ... 37 37 \n", - "518 False 5 ... 48 48 \n", - "519 False 17 ... 51 51 \n", + " has top hit rank in top 5 in top 10 ... num terms num unparsed \\\n", + "0 True 5.0 False True ... 10 10 \n", + "1 True 0.0 True True ... 4 4 \n", + "2 False NaN False False ... 3 3 \n", + "3 False NaN False False ... 10 10 \n", + "4 False NaN False False ... 15 15 \n", + ".. ... ... ... ... ... ... ... \n", + "567 True 0.0 True True ... 181 181 \n", + "568 False NaN False False ... 38 38 \n", + "569 False NaN False False ... 49 49 \n", + "570 False NaN False False ... 51 51 \n", + "571 True 46.0 False False ... 3965 3965 \n", "\n", - " go term p values max p value \\\n", - "0 [3.341122685366184e-06, 1.0, 5.591343976855226... 1.000000 \n", - "1 [3.341122685366184e-06, 1.0, 0.000216344273687... 1.000000 \n", - "2 [3.341122685366184e-06, 5.591343976855226e-11,... 1.000000 \n", - "3 [2.0273650307569266e-05, 1.0, 0.00119121077281... 1.000000 \n", - "4 [1.0, 0.0003206219640437401, 1.0, 1.0, 3.34112... 1.000000 \n", - ".. ... ... \n", - "515 [6.884538416513159e-05, 1.0] 1.000000 \n", - "516 [1.5866410096162855e-26, 1.6180289475740402e-2... 0.049553 \n", - "517 [1.1295219713092072e-18, 1.9857953479901853e-1... 1.000000 \n", - "518 [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ... 1.000000 \n", - "519 [1.0, 1.0, 1.0, 1.0, 4.612783462092152e-17, 7.... 1.000000 \n", + " go term p values \\\n", + "0 [3.341122685366184e-06, 0.00026467316824618385, 1.0, 1.0, 5.591343976855226e-11, 1.0, 1.0, 1.0, 1.0] \n", + "1 [5.591343976855226e-11, 3.341122685366184e-06, 1.0, 0.013894831001982877] \n", + "2 [1.0, 3.341122685366184e-06, 1.0] \n", + "3 [1.0, 1.0, 0.00211738721495877, 0.00119121077281765, 1.0, 0.0003206219640437401, 1.0, 1.0, 1.0] \n", + "4 [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] \n", + ".. ... \n", + "567 [4.988150254572451e-28, 5.089713278078831e-28, 6.222732503665588e-28, 2.5181292279890926e-26, 6.360582827326825e-26, 6.280681710633612e-25, 1.992067137890145e-24, 2.160407927771538e-24, 1.531197330767613e-23, 4.406686617875145e-23, 4.520132491659314e-23, 6.047956648850335e-23, 1.42513668286587e-22, 8.082830272613584e-22, 8.280409536451057e-22, 8.457494137576952e-22, 1.1587498886554318e-21, 2.0257524856083073e-21, 2.0803834350443526e-21, 3.470732713187183e-21, 1.463206966124319e-20, 2.506621557484459e-20, 3.054326526778521e-20, 4.839153573691595e-20, 5.101482454717162e-20, 7.808298808825646e-20, 8.868663592283121e-20, 9.993781841681446e-20, 1.0673363321867488e-19, 1.4998597499692998e-19, 1.4998597499692998e-19, 1.5457242764238197e-19, 1.6672250732819605e-19, 1.7114716194746733e-19, 2.406266603748282e-19, 2.4372228200848596e-19, 6.105038238036257e-19, 6.223983270815405e-19, 2.1235204181331734e-18, 2.4355875541881905e-18, 3.662762983506111e-18, 7.451648490886942e-18, 8.396417265824472e-18, 1.0890888827682343e-17, 1.8698967218267112e-17, 2.2078693923148846e-17, 2.5929122360808936e-17, 2.6263604428984028e-17, 3.3376438896625706e-17, 6.312097805142557e-17, 8.44210610764168e-17, 8.780853612258093e-17, 1.256794485435431e-16, 1.3634794047439367e-16, 1.7837718872524886e-16, 2.4682080854405927e-16, 2.528147790145545e-16, 2.84294367797696e-16, 1.3672391972253508e-15, 2.1122706998882423e-15, 2.262163598395585e-15, 2.3769365136746476e-15, 4.807871263219351e-15, 5.098145395239435e-15, 1.2816384484550604e-14, 1.313426426557983e-14, 1.863045482048372e-14, 1.9962778658494635e-14, 3.292811708352154e-14, 4.077674313669671e-14, 6.01177100081973e-14, 2.4957312733595376e-13, 2.864021009704981e-13, 2.9810617943360497e-13, 5.819244888328512e-13, 8.540048474946289e-13, 1.0377360388259339e-12, 1.1099602352756002e-12, 1.1849888758335027e-12, 1.2843592203666209e-12, 1.3338484106013712e-12, 1.3853402724665883e-12, 3.0389767852861082e-12, 7.446509980199845e-12, 9.24102116663525e-12, 1.1186070559309425e-10, 1.142136997598513e-10, 1.142136997598513e-10, 1.142136997598513e-10, 1.5338271728466858e-10, 5.707617974294617e-10, 2.1038940769888833e-09, 2.3785166500474574e-09, 4.56636746104505e-08, 4.896484580823067e-08, 7.071552977186578e-08, 1.1027883530329518e-07, 1.4803215188043313e-07, 2.0238207019879306e-07, 2.40027403455946e-07, ...] \n", + "568 [9.993781841681446e-20, 5.101482454717162e-20, 1.0890888827682343e-17, 3.0389767852861082e-12, 1.2816384484550604e-14, 1.1849888758335027e-12, 1.4998597499692998e-19, 8.082830272613584e-22, 9.24102116663525e-12, 2.5181292279890926e-26, 2.1038940769888833e-09, 1.5338271728466858e-10, 1.4803215188043313e-07, 2.2078693923148846e-17, 8.44210610764168e-17, 4.6074946792391266e-05, 7.698187260692121e-06, 1.992309673557265e-05, 2.772550857289152e-07, 1.0751034116409277e-06, 5.707617974294617e-10, 2.0257524856083073e-21, 4.406686617875145e-23, 2.9810617943360497e-13, 3.054326526778521e-20, 0.0017556171417364651, 5.819244888328512e-13, 0.013364132777108115, 0.01830361381899467, 1.0377360388259339e-12, 1.0, 1.0, 0.04072498754549389, 7.090779938263196e-05, 0.0002413697629437105, 1.0, 1.0, 1.0] \n", + "569 [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 5.101482454717162e-20, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0751034116409277e-06, 1.0, 4.406686617875145e-23, 1.0, 1.0, 1.0, 1.0, 2.5181292279890926e-26, 1.8698967218267112e-17, 1.5338271728466858e-10, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 9.24102116663525e-12, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.1849888758335027e-12, 1.0, 1.0, 1.0, 1.0] \n", + "570 [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 5.101482454717162e-20, 1.0, 1.0, 2.0257524856083073e-21, 8.082830272613584e-22, 1.0, 1.0, 1.0, 5.746621615633877e-07, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 4.406686617875145e-23, 1.0, 1.0, 2.5181292279890926e-26, 1.0, 1.5338271728466858e-10, 1.0, 1.0, 0.004817572706188025, 1.0, 1.0, 0.0065935552067459295, 1.4998597499692998e-19, 1.0, 9.993781841681446e-20, 1.0, 2.2078693923148846e-17, 1.0, 1.0, 1.0, 0.0002413697629437105, 1.0, 9.24102116663525e-12, 1.2816384484550604e-14, 1.0890888827682343e-17, 1.0, 1.0, 1.1849888758335027e-12, 1.0, 1.0] \n", + "571 [1.0, 1.0, 1.0, 1.0, 1.0, 3.839829331449604e-05, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.1027883530329518e-07, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 4.988150254572451e-28, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.40027403455946e-07, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...] \n", "\n", - " min p value mean p value proportion significant \\\n", - "0 5.591344e-11 0.400044 0.600000 \n", - "1 3.341123e-06 0.333407 0.666667 \n", - "2 5.591344e-11 0.600001 0.400000 \n", - "3 2.027365e-05 0.500303 0.500000 \n", - "4 3.341123e-06 0.600065 0.400000 \n", - ".. ... ... ... \n", - "515 6.884538e-05 0.500034 0.500000 \n", - "516 1.586641e-26 0.003398 1.000000 \n", - "517 2.444887e-26 0.056529 0.945946 \n", - "518 2.559980e-20 0.895834 0.104167 \n", - "519 2.444887e-26 0.667483 0.333333 \n", + " max p value min p value mean p value proportion significant \\\n", + "0 1.00 5.59e-11 6.67e-01 0.33 \n", + "1 1.00 5.59e-11 2.53e-01 0.75 \n", + "2 1.00 3.34e-06 6.67e-01 0.33 \n", + "3 1.00 3.21e-04 6.67e-01 0.33 \n", + "4 1.00 1.00e+00 1.00e+00 0.00 \n", + ".. ... ... ... ... \n", + "567 0.04 4.99e-28 4.15e-03 1.00 \n", + "568 1.00 2.52e-26 1.34e-01 0.87 \n", + "569 1.00 2.52e-26 8.37e-01 0.16 \n", + "570 1.00 2.52e-26 6.67e-01 0.33 \n", + "571 1.00 4.99e-28 9.38e-01 0.06 \n", "\n", - " novel \\\n", - "0 [GO:0030574, GO:0010712] \n", - "1 [GO:0032964] \n", - "2 [GO:0061448, GO:0032965, GO:1901201] \n", - "3 [GO:0009451, GO:0032502] \n", - "4 [GO:0043394, GO:0005518, GO:0006956] \n", - ".. ... \n", - "515 [GO:0004879] \n", - "516 [] \n", - "517 [GO:0031018, GO:0140467] \n", - "518 [GO:0048490, GO:0060465, GO:0072562, GO:000410... \n", - "519 [GO:0005509, GO:0042802, GO:0003674, GO:000582... \n", + " novel \\\n", + "0 [GO:0033197, GO:0010710, GO:0032966] \n", + "1 [] \n", + "2 [] \n", + "3 [GO:0006457, GO:0098631] \n", + "4 [] \n", + ".. ... \n", + "567 [] \n", + "568 [] \n", + "569 [GO:0021549, GO:0050911, GO:0035608, GO:1904261, GO:0005789, GO:0030218, GO:0007080, GO:0043560, GO:1905370, GO:0000725, GO:0000028, GO:2000270, GO:0000049, GO:0060687, GO:0015631, GO:1902774] \n", + "570 [GO:0005789, GO:0004930, GO:0005509, GO:0000139, GO:0007186] \n", + "571 [] \n", "\n", - " novel labels num novel \n", - "0 [collagen catabolic process, regulation of col... 2 \n", - "1 [collagen biosynthetic process] 1 \n", - "2 [connective tissue development, regulation of ... 3 \n", - "3 [RNA modification, developmental process] 2 \n", - "4 [proteoglycan binding, collagen binding, compl... 3 \n", - ".. ... ... \n", - "515 [nuclear receptor activity] 1 \n", - "516 [] 0 \n", - "517 [endocrine pancreas development, integrated st... 2 \n", - "518 [anterograde synaptic vesicle transport, phary... 43 \n", - "519 [calcium ion binding, identical protein bindin... 34 \n", + " novel labels \\\n", + "0 [response to vitamin E, regulation of collagen catabolic process, negative regulation of collagen biosynthetic process] \n", + "1 [] \n", + "2 [] \n", + "3 [protein folding, cell adhesion mediator activity] \n", + "4 [] \n", + ".. ... \n", + "567 [] \n", + "568 [] \n", + "569 [cerebellum development, detection of chemical stimulus involved in sensory perception of smell, protein deglutamylation, positive regulation of basement membrane assembly involved in embryonic body morphogenesis, endoplasmic reticulum membrane, erythrocyte differentiation, mitotic metaphase plate congression, insulin receptor substrate binding, serine-type endopeptidase complex, recombinational repair, ribosomal small subunit assembly, negative regulation of fibroblast apoptotic process, tRNA binding, regulation of branching involved in prostate gland morphogenesis, tubulin binding, late endosome to lysosome transport] \n", + "570 [endoplasmic reticulum membrane, G protein-coupled receptor activity, calcium ion binding, Golgi membrane, G protein-coupled receptor signaling pathway] \n", + "571 [] \n", "\n", - "[520 rows x 29 columns]" + " num novel \n", + "0 3 \n", + "1 0 \n", + "2 0 \n", + "3 2 \n", + "4 0 \n", + ".. ... \n", + "567 0 \n", + "568 0 \n", + "569 16 \n", + "570 5 \n", + "571 0 \n", + "\n", + "[572 rows x 30 columns]" ] }, - "execution_count": 13, + "execution_count": 152, "metadata": {}, "output_type": "execute_result" } @@ -593,7 +622,7 @@ "source": [ "import statistics\n", "import re\n", - "def eval_payload(comp, payload, expected):\n", + "def eval_payload(comp, payload, expected, closure):\n", " \"\"\"\n", " Create a dataframe row from a payload in a comparison\n", " \"\"\"\n", @@ -612,6 +641,7 @@ " obj = {MODEL: model, METHOD: method, GENESET: name, TRUNCATION_FACTOR: tf}\n", " name_toks = name.split(\"-\")\n", " obj[SOURCE_GENESET] = \"-\".join(name_toks[0:-1])\n", + " obj[GENE_RANDOMIZATION_FACTOR] = int(name_toks[-1])\n", " if not expected.term_ids:\n", " #print(f\"Nothing expected for {name}\")\n", " # top_term_id = \"FAKE:123\"\n", @@ -662,9 +692,9 @@ " obj[PROPOTION_SIGNIFICANT] = len([v for v in p_vals if v<=0.05]) / len(p_vals)\n", " novel = []\n", " novel_labels = []\n", - " enriched_terms = [e.class_id for e in expected.enrichment_results]\n", + " # enriched_terms = [e.class_id for e in expected.enrichment_results]\n", " for t in go_term_ids:\n", - " if t not in enriched_terms:\n", + " if t not in closure:\n", " novel.append(t)\n", " novel_labels.append(go.label(t))\n", " obj[NOVEL] = novel\n", @@ -675,14 +705,17 @@ "objs = []\n", "for comp in comps:\n", " expected = comp.payloads[\"standard\"]\n", - " rank_based = comp.payloads[\"rank_based\"]\n", + " closure = comp.payloads[\"closure\"].term_ids\n", " #gene_set = GeneSet(name=comp.name, gene_symbols=comp.gene_symbols)\n", " #populate_ids_and_symbols(gene_set, hgnc)\n", " \n", - " for _method, payload in comp.payloads.items():\n", - " obj = eval_payload(comp, payload, expected)\n", + " for method, payload in comp.payloads.items():\n", + " obj = eval_payload(comp, payload, expected, closure)\n", " if obj:\n", " objs.append(obj)\n", + " # temp\n", + " if not obj[METHOD]:\n", + " obj[METHOD] = method\n", "df = pd.DataFrame(objs)\n", "df.to_csv(\"enr.csv\")\n", "df" @@ -690,7 +723,7 @@ }, { "cell_type": "markdown", - "id": "79c9c33f", + "id": "23f78d45", "metadata": {}, "source": [ "The above data frame has one row per run of a method" @@ -698,8 +731,8 @@ }, { "cell_type": "code", - "execution_count": 14, - "id": "30c50449", + "execution_count": 153, + "id": "b377198f", "metadata": {}, "outputs": [ { @@ -754,9 +787,9 @@ " ontological_synopsis\n", " \n", " \n", - " 5\n", - " text-davinci-003\n", - " narrative_synopsis\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", " 6\n", @@ -778,25 +811,34 @@ " N/A\n", " rank_based\n", " \n", + " \n", + " 10\n", + " N/A\n", + " closure\n", + " \n", " \n", "\n", + "

11 rows × 2 columns

\n", "" ], "text/plain": [ - " model method\n", - "0 gpt-3.5-turbo no_synopsis\n", - "1 gpt-3.5-turbo ontological_synopsis\n", - "2 gpt-3.5-turbo narrative_synopsis\n", - "3 text-davinci-003 no_synopsis\n", - "4 text-davinci-003 ontological_synopsis\n", - "5 text-davinci-003 narrative_synopsis\n", - "6 N/A standard\n", - "7 N/A standard_no_ontology\n", - "8 N/A random\n", - "9 N/A rank_based" + " model method\n", + "0 gpt-3.5-turbo no_synopsis\n", + "1 gpt-3.5-turbo ontological_synopsis\n", + "2 gpt-3.5-turbo narrative_synopsis\n", + "3 text-davinci-003 no_synopsis\n", + "4 text-davinci-003 ontological_synopsis\n", + ".. ... ...\n", + "6 N/A standard\n", + "7 N/A standard_no_ontology\n", + "8 N/A random\n", + "9 N/A rank_based\n", + "10 N/A closure\n", + "\n", + "[11 rows x 2 columns]" ] }, - "execution_count": 14, + "execution_count": 153, "metadata": {}, "output_type": "execute_result" } @@ -807,7 +849,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 154, "id": "c7263499", "metadata": {}, "outputs": [ @@ -841,140 +883,68 @@ " EDS\n", " \n", " \n", - " 20\n", + " 22\n", " FA\n", " \n", " \n", - " 40\n", + " 44\n", " HALLMARK_APICAL_JUNCTION\n", " \n", " \n", - " 60\n", + " 66\n", " HALLMARK_GLYCOLYSIS\n", " \n", " \n", - " 80\n", + " 88\n", " HALLMARK_HEDGEHOG_SIGNALING\n", " \n", " \n", - " 100\n", - " HALLMARK_INTERFERON_GAMMA_RESPONSE\n", - " \n", - " \n", - " 120\n", - " HALLMARK_MTORC1_SIGNALING\n", - " \n", - " \n", - " 140\n", - " T cell proliferation\n", - " \n", - " \n", - " 160\n", - " Yamanaka-TFs\n", - " \n", - " \n", - " 180\n", - " amigo-example\n", - " \n", - " \n", - " 200\n", - " bicluster_RNAseqDB_0\n", - " \n", - " \n", - " 220\n", - " bicluster_RNAseqDB_1002\n", - " \n", - " \n", - " 240\n", - " term-GO:0007212\n", - " \n", - " \n", - " 260\n", - " endocytosis\n", - " \n", - " \n", - " 280\n", - " go-postsynapse-calcium-transmembrane\n", - " \n", - " \n", - " 300\n", - " go-reg-autophagy-pkra\n", - " \n", - " \n", - " 320\n", - " hydrolase activity, hydrolyzing O-glycosyl com...\n", - " \n", - " \n", - " 340\n", - " ig-receptor-binding-2022\n", - " \n", - " \n", - " 360\n", - " meiosis I\n", - " \n", - " \n", - " 380\n", - " molecular sequestering\n", - " \n", - " \n", - " 400\n", - " mtorc1\n", + " ...\n", + " ...\n", " \n", " \n", - " 420\n", + " 462\n", " peroxisome\n", " \n", " \n", - " 440\n", + " 484\n", " progeria\n", " \n", " \n", - " 460\n", + " 506\n", " regulation of presynaptic membrane potential\n", " \n", " \n", - " 480\n", + " 528\n", " sensory ataxia\n", " \n", " \n", - " 500\n", + " 550\n", " tf-downreg-colorectal\n", " \n", " \n", "\n", + "

26 rows × 1 columns

\n", "" ], "text/plain": [ - " source geneset\n", - "0 EDS\n", - "20 FA\n", - "40 HALLMARK_APICAL_JUNCTION\n", - "60 HALLMARK_GLYCOLYSIS\n", - "80 HALLMARK_HEDGEHOG_SIGNALING\n", - "100 HALLMARK_INTERFERON_GAMMA_RESPONSE\n", - "120 HALLMARK_MTORC1_SIGNALING\n", - "140 T cell proliferation\n", - "160 Yamanaka-TFs\n", - "180 amigo-example\n", - "200 bicluster_RNAseqDB_0\n", - "220 bicluster_RNAseqDB_1002\n", - "240 term-GO:0007212\n", - "260 endocytosis\n", - "280 go-postsynapse-calcium-transmembrane\n", - "300 go-reg-autophagy-pkra\n", - "320 hydrolase activity, hydrolyzing O-glycosyl com...\n", - "340 ig-receptor-binding-2022\n", - "360 meiosis I\n", - "380 molecular sequestering\n", - "400 mtorc1\n", - "420 peroxisome\n", - "440 progeria\n", - "460 regulation of presynaptic membrane potential\n", - "480 sensory ataxia\n", - "500 tf-downreg-colorectal" + " source geneset\n", + "0 EDS\n", + "22 FA\n", + "44 HALLMARK_APICAL_JUNCTION\n", + "66 HALLMARK_GLYCOLYSIS\n", + "88 HALLMARK_HEDGEHOG_SIGNALING\n", + ".. ...\n", + "462 peroxisome\n", + "484 progeria\n", + "506 regulation of presynaptic membrane potential\n", + "528 sensory ataxia\n", + "550 tf-downreg-colorectal\n", + "\n", + "[26 rows x 1 columns]" ] }, - "execution_count": 15, + "execution_count": 154, "metadata": {}, "output_type": "execute_result" } @@ -985,7 +955,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 155, "id": "30174f04", "metadata": {}, "outputs": [ @@ -993,7 +963,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/nc/m4tx21912kv1b8nk3zzx9plr0000gn/T/ipykernel_46244/3852654709.py:1: FutureWarning: this method is deprecated in favour of `Styler.hide(axis=\"index\")`\n", + "/var/folders/nc/m4tx21912kv1b8nk3zzx9plr0000gn/T/ipykernel_82942/3852654709.py:1: FutureWarning: this method is deprecated in favour of `Styler.hide(axis=\"index\")`\n", " df[[SOURCE_GENESET, GENESET_SIZE]].drop_duplicates().style.hide_index()\n" ] }, @@ -1002,126 +972,126 @@ "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", "
source genesetgeneset_sizesource genesetgeneset_size
EDS19EDS19
FA19FA19
HALLMARK_APICAL_JUNCTION200HALLMARK_APICAL_JUNCTION200
HALLMARK_GLYCOLYSIS200HALLMARK_GLYCOLYSIS200
HALLMARK_HEDGEHOG_SIGNALING36HALLMARK_HEDGEHOG_SIGNALING36
HALLMARK_INTERFERON_GAMMA_RESPONSE200HALLMARK_INTERFERON_GAMMA_RESPONSE200
HALLMARK_MTORC1_SIGNALING200HALLMARK_MTORC1_SIGNALING200
T cell proliferation72T cell proliferation72
Yamanaka-TFs4Yamanaka-TFs4
amigo-example36amigo-example36
bicluster_RNAseqDB_0158bicluster_RNAseqDB_0158
bicluster_RNAseqDB_100252bicluster_RNAseqDB_100252
term-GO:000721228term-GO:000721228
endocytosis16endocytosis16
go-postsynapse-calcium-transmembrane33go-postsynapse-calcium-transmembrane33
go-reg-autophagy-pkra17go-reg-autophagy-pkra17
hydrolase activity, hydrolyzing O-glycosyl compounds91hydrolase activity, hydrolyzing O-glycosyl compounds91
ig-receptor-binding-202291ig-receptor-binding-202291
meiosis I54meiosis I54
molecular sequestering30molecular sequestering30
mtorc1200mtorc1200
peroxisome8peroxisome8
progeria4progeria4
regulation of presynaptic membrane potential30regulation of presynaptic membrane potential30
sensory ataxia15sensory ataxia15
tf-downreg-colorectal51tf-downreg-colorectal51
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 16, + "execution_count": 155, "metadata": {}, "output_type": "execute_result" } @@ -1130,54 +1100,141 @@ "df[[SOURCE_GENESET, GENESET_SIZE]].drop_duplicates().style.hide_index()" ] }, - { - "cell_type": "markdown", - "id": "f8ac06b4", - "metadata": {}, - "source": [ - "## Subset Analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "a15bf2ee", - "metadata": {}, - "outputs": [], - "source": [ - "from collections import defaultdict\n", - "go = get_adapter(\"sqlite:obo:go\")\n", - "subsets = list(go.subsets())\n", - "subsets_by_term = defaultdict(list)\n", - "for subset in subsets:\n", - " members = [m for m in go.subset_members(subset) if m.startswith(\"GO:\")]\n", - " for t in members:\n", - " subsets_by_term[t].append(subset)\n", - " members_ancs = go.ancestors(members)\n", - " anc_subset = f\"anc_of_{subset}\"\n", - " for a in members_ancs:\n", - " if a not in members:\n", - " subsets_by_term[a].append(anc_subset)" - ] - }, { "cell_type": "code", - "execution_count": 18, - "id": "854ea86d", + "execution_count": 156, + "id": "0c34babb", "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "19303\n" + "/var/folders/nc/m4tx21912kv1b8nk3zzx9plr0000gn/T/ipykernel_82942/2185383538.py:1: FutureWarning: this method is deprecated in favour of `Styler.hide(axis=\"index\")`\n", + " df[[MODEL, METHOD]].drop_duplicates().style.hide_index()\n" ] }, { "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", + "
modelmethod
gpt-3.5-turbono_synopsis
gpt-3.5-turboontological_synopsis
gpt-3.5-turbonarrative_synopsis
text-davinci-003no_synopsis
text-davinci-003ontological_synopsis
text-davinci-003narrative_synopsis
N/Astandard
N/Astandard_no_ontology
N/Arandom
N/Arank_based
N/Aclosure
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 156, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[[MODEL, METHOD]].drop_duplicates().style.hide_index()" + ] + }, + { + "cell_type": "markdown", + "id": "f8ac06b4", + "metadata": {}, + "source": [ + "## Subset Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "id": "a15bf2ee", + "metadata": {}, + "outputs": [], + "source": [ + "from collections import defaultdict\n", + "go = get_adapter(\"sqlite:obo:go\")\n", + "subsets = list(go.subsets())\n", + "subsets_by_term = defaultdict(list)\n", + "for subset in subsets:\n", + " members = [m for m in go.subset_members(subset) if m.startswith(\"GO:\")]\n", + " for t in members:\n", + " subsets_by_term[t].append(subset)\n", + " members_ancs = go.ancestors(members)\n", + " anc_subset = f\"anc_of_{subset}\"\n", + " for a in members_ancs:\n", + " if a not in members:\n", + " subsets_by_term[a].append(anc_subset)" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "id": "854ea86d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "193074\n" + ] + }, + { + "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", @@ -1705,366 +1775,401 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  goslim_chemblgoslim_genericgoslim_drosophilagoslim_pirprokaryote_subsetanc_of_goslim_synapseanc_of_goslim_pirgoslim_yeastanc_of_goslim_plantgoslim_flybase_ribbonanc_of_goslim_chemblgoslim_agranc_of_goslim_metagenomicsanc_of_goslim_yeastanc_of_goslim_pombeanc_of_gocheck_do_not_annotateanc_of_goslim_genericanc_of_goslim_drosophilaanc_of_goslim_candidaanc_of_gocheck_do_not_manually_annotateanc_of_goslim_mousegoslim_plantanc_of_prokaryote_subsetgoslim_metagenomicsanc_of_goslim_flybase_ribbonanc_of_goslim_agrgoslim_candidagoslim_mousegoslim_pombegocheck_do_not_manually_annotategocheck_do_not_annotategoslim_synapsegoslim_chemblgoslim_genericgoslim_drosophilaanc_of_goslim_synapsegoslim_pirgoslim_metagenomicsgoslim_pombegoslim_candidaprokaryote_subsetgoslim_yeastanc_of_goslim_pirgoslim_plantgoslim_agrgoslim_mouseanc_of_gocheck_do_not_annotateanc_of_goslim_chemblanc_of_goslim_genericanc_of_goslim_drosophilaanc_of_goslim_candidaanc_of_goslim_metagenomicsanc_of_goslim_yeastanc_of_prokaryote_subsetgoslim_flybase_ribbonanc_of_goslim_flybase_ribbonanc_of_goslim_agranc_of_goslim_pombeanc_of_gocheck_do_not_manually_annotateanc_of_goslim_mouseanc_of_goslim_plantgocheck_do_not_annotategocheck_do_not_manually_annotategoslim_synapse
model
N/Arandom0.1710.1050.1150.1150.0600.1690.1060.1070.0260.0630.0540.0780.0400.0520.0790.0850.0590.0680.0260.0700.0400.1080.0330.0730.0280.0390.0880.0670.0140.0020.0020.020
rank_based0.3710.2160.2460.2360.1190.3410.2230.2290.0640.1380.1010.1800.0960.1090.1640.1810.1340.1680.0670.1480.0940.2420.0800.1460.0570.0910.2020.1530.0250.0030.0000.019
standard0.0840.0490.0590.0970.0380.2520.1680.0440.0800.0360.1530.0410.0990.1310.1010.1110.1390.1570.0890.1150.0790.0590.1000.0440.0460.0750.0380.0340.0150.0350.0330.020
standard_no_ontology0.0860.0580.0620.0560.0370.1100.0600.0450.0110.0270.0240.0350.0290.0200.0300.0400.0240.0300.0100.0190.0160.0420.0130.0310.0090.0150.0340.0280.0120.0010.0010.040
gpt-3.5-turbonarrative_synopsis0.2310.2260.2690.1880.1670.3600.2260.1720.0480.0430.1340.0650.1180.1080.0810.1560.1240.1510.0650.0970.0810.1180.0910.1130.0110.0810.1610.0480.1130.0110.0270.005
no_synopsis0.1520.1660.1990.1550.1120.1950.1190.1230.0290.0140.0360.0360.0580.0650.0540.0900.0610.0470.0250.0320.0290.0830.0470.0900.0070.0290.1010.0320.0970.0220.0250.025
ontological_synopsis0.2130.1610.1850.1560.1090.2230.1370.1560.0140.0280.0470.0660.0710.0620.0240.1000.0620.0900.0190.0380.0380.0950.0520.1140.0430.0570.1230.0520.0760.0050.0050.019
text-davinci-003narrative_synopsis0.3120.2390.2750.2570.2160.2390.1970.2290.0410.0870.0960.1240.1470.1470.0920.1830.1610.1830.0500.0690.0960.2160.1100.1610.0690.0960.2160.1190.1240.0140.0050.005
no_synopsis0.3040.2460.3090.2750.2170.3240.2510.2130.1010.0770.1550.1160.1260.1450.1640.2660.2080.2080.1060.2030.1590.1840.1450.1980.0340.1260.2130.0680.1500.0050.0390.000
ontological_synopsis0.2230.1000.1500.1080.0830.2260.1680.1200.0350.0600.0730.0680.0680.0650.0280.1050.0900.1100.0500.0780.0630.0930.0730.1000.0130.0550.1150.0430.0400.0000.0030.013N/Aclosure0.0560.0310.0390.1140.0580.0210.0100.0220.0200.0330.0910.0280.0190.0160.0530.0670.0580.0680.0390.0440.0640.0410.0160.0170.0270.0480.0410.0280.0340.0100.0100.013
random0.1710.1070.1200.1700.1140.0710.0170.0900.0620.1090.1130.1060.0730.0650.0870.0450.0580.0690.0270.0460.0530.0340.0610.0290.0410.0870.0710.0430.0240.0010.0020.014
rank_based0.3710.2160.2460.3410.2360.1460.0250.2020.1190.2290.2230.2420.1800.1530.1810.1010.1340.1680.0670.0960.1090.0800.1380.0570.0910.1640.1480.0940.0640.0000.0030.019
standard0.0830.0490.0590.2520.0980.0440.0150.0380.0380.0440.1660.0590.0420.0340.1110.1540.1390.1580.0900.0990.1310.1000.0370.0450.0740.1020.1140.0790.0800.0330.0350.020
standard_no_ontology0.0820.0560.0620.1130.0570.0310.0130.0330.0360.0450.0570.0400.0360.0280.0400.0230.0240.0300.0100.0290.0200.0140.0270.0080.0140.0290.0190.0160.0100.0010.0010.040
gpt-3.5-turbonarrative_synopsis0.2500.2090.2140.3060.1840.1170.0920.1480.1580.1480.1680.1330.0710.0560.1730.0770.1220.1380.0510.0660.1120.0970.0460.0360.0660.1070.0770.0710.0200.0100.0260.020
no_synopsis0.1670.1600.2030.2270.1700.0900.0870.1030.1100.1470.1600.0670.0300.0170.1230.0700.1030.0930.0430.0870.0900.0900.0130.0070.0630.0730.0500.0670.0530.0270.0100.017
ontological_synopsis0.2120.1680.2160.2240.1560.1040.0760.1360.1240.1560.1440.1120.0680.0600.1120.0560.0720.0800.0400.0760.0800.0560.0440.0320.0520.0320.0440.0560.0280.0080.0080.016
text-davinci-003narrative_synopsis0.3570.2560.3430.2800.2950.2080.1550.2460.2460.2320.2460.2220.1110.1010.2030.0920.1500.1400.0920.1350.1930.1160.0720.0480.1160.0920.0920.1160.0530.0340.0050.005
no_synopsis0.3460.2410.3210.3210.3080.2070.1690.2490.2190.2530.2780.2320.1270.0930.2530.1180.2070.2190.1010.1310.1810.1520.0720.0300.1050.1650.1140.1100.0680.0300.0300.017
ontological_synopsis0.2290.1190.1670.2460.1420.1020.0510.1100.0990.1300.1900.1130.0680.0510.1330.0850.1220.1130.0760.0790.0990.1160.0540.0340.0880.0540.0710.0930.0510.0060.0110.003
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 19, + "execution_count": 159, "metadata": {}, "output_type": "execute_result" } @@ -2075,29 +2180,29 @@ }, { "cell_type": "code", - "execution_count": 20, - "id": "26f3f6ae", + "execution_count": 160, + "id": "9f53fd9c", "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", @@ -2112,106 +2217,115 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  goslim_genericanc_of_goslim_genericgoslim_agranc_of_goslim_agrclosure_of_goslim_genericclosure_of_goslim_agrgoslim_genericanc_of_goslim_genericgoslim_agranc_of_goslim_agrclosure_of_goslim_genericclosure_of_goslim_agr
model
N/Arandom0.1050.0590.0780.0390.1640.117
rank_based0.2160.1340.1800.0910.3500.271
standard0.0490.1390.0410.0750.1880.116
standard_no_ontology0.0580.0240.0350.0150.0820.050
gpt-3.5-turbonarrative_synopsis0.2260.1240.0650.0810.3490.145
no_synopsis0.1660.0610.0360.0290.2270.065
ontological_synopsis0.1610.0620.0660.0570.2230.123
text-davinci-003narrative_synopsis0.2390.1610.1240.0960.3990.220
no_synopsis0.2460.2080.1160.1260.4540.242
ontological_synopsis0.1000.0900.0680.0550.1900.123N/Aclosure0.0310.0580.0190.0270.0890.046
random0.1070.0580.0730.0410.1660.114
rank_based0.2160.1340.1800.0910.3500.271
standard0.0490.1390.0420.0740.1890.116
standard_no_ontology0.0560.0240.0360.0140.0800.050
gpt-3.5-turbonarrative_synopsis0.2090.1220.0710.0660.3320.138
no_synopsis0.1600.1030.0300.0630.2630.093
ontological_synopsis0.1680.0720.0680.0520.2400.120
text-davinci-003narrative_synopsis0.2560.1500.1110.1160.4060.227
no_synopsis0.2410.2070.1270.1050.4470.232
ontological_synopsis0.1190.1220.0680.0880.2410.156
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 20, + "execution_count": 160, "metadata": {}, "output_type": "execute_result" } @@ -2227,29 +2341,31 @@ }, { "cell_type": "code", - "execution_count": 21, - "id": "156709bd", - "metadata": {}, + "execution_count": 161, + "id": "b6b4f797", + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2264,108 +2380,118 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  goslim_genericanc_of_goslim_genericgoslim_agranc_of_goslim_agrclosure_of_goslim_genericclosure_of_goslim_agrgoslim_genericanc_of_goslim_genericgoslim_agranc_of_goslim_agrclosure_of_goslim_genericclosure_of_goslim_agr
model
text-davinci-003no_synopsis0.2460.2080.1160.1260.4540.242
narrative_synopsis0.2390.1610.1240.0960.3990.220
N/Arank_based0.2160.1340.1800.0910.3500.271
gpt-3.5-turbonarrative_synopsis0.2260.1240.0650.0810.3490.145
no_synopsis0.1660.0610.0360.0290.2270.065
ontological_synopsis0.1610.0620.0660.0570.2230.123
text-davinci-003ontological_synopsis0.1000.0900.0680.0550.1900.123
N/Astandard0.0490.1390.0410.0750.1880.116
random0.1050.0590.0780.0390.1640.117
standard_no_ontology0.0580.0240.0350.0150.0820.050text-davinci-003no_synopsis0.2410.2070.1270.1050.4470.232
narrative_synopsis0.2560.1500.1110.1160.4060.227
N/Arank_based0.2160.1340.1800.0910.3500.271
gpt-3.5-turbonarrative_synopsis0.2090.1220.0710.0660.3320.138
no_synopsis0.1600.1030.0300.0630.2630.093
text-davinci-003ontological_synopsis0.1190.1220.0680.0880.2410.156
gpt-3.5-turboontological_synopsis0.1680.0720.0680.0520.2400.120
N/Astandard0.0490.1390.0420.0740.1890.116
random0.1070.0580.0730.0410.1660.114
closure0.0310.0580.0190.0270.0890.046
standard_no_ontology0.0560.0240.0360.0140.0800.050
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 21, + "execution_count": 161, "metadata": {}, "output_type": "execute_result" } @@ -2376,143 +2502,244 @@ }, { "cell_type": "code", - "execution_count": 22, - "id": "534009f0", + "execution_count": 163, + "id": "d59a8dfe", "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", "
  anc_of_goslim_genericanc_of_goslim_agrnum GO termssize overlapnr size overlap
modelmethod   
N/Astandard_no_ontology0.0240.015N/Aclosure3339.519161.5772.692
gpt-3.5-turbono_synopsis0.0610.029random64.0193.8850.308
N/Arandom0.0590.039rank_based71.6928.2120.308
text-davinci-003ontological_synopsis0.0900.055standard_no_ontology46.48137.8465.288
gpt-3.5-turboontological_synopsis0.0620.057gpt-3.5-turbonarrative_synopsis3.7692.1150.462
N/Astandard0.1390.075no_synopsis5.7693.1150.558
gpt-3.5-turbonarrative_synopsis0.1240.081ontological_synopsis4.8082.8460.577
N/Arank_based0.1340.091text-davinci-003narrative_synopsis3.9811.3080.346
text-davinci-003narrative_synopsis0.1610.096no_synopsis4.5581.6150.346
no_synopsis0.2080.126ontological_synopsis6.7882.2500.462
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 22, + "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "means[[\"anc_of_goslim_generic\", \"anc_of_goslim_agr\"]].sort_values(\"anc_of_goslim_agr\", ascending=True).style.highlight_min(axis=0, props='font-weight:bold').format(precision=3)" + "agg_table(df, [NUM_GO_TERMS, SIZE_OVERLAP, NR_SIZE_OVERLAP], [\"standard\"])" ] }, { "cell_type": "code", - "execution_count": 23, - "id": "83dff552", + "execution_count": 164, + "id": "bd90d757", "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'plt' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[23], line 9\u001b[0m\n\u001b[1;32m 7\u001b[0m melted_df\n\u001b[1;32m 8\u001b[0m \u001b[38;5;66;03m# Create a bar plot using Seaborn\u001b[39;00m\n\u001b[0;32m----> 9\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241m.\u001b[39mfigure(figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m10\u001b[39m, \u001b[38;5;241m6\u001b[39m))\n\u001b[1;32m 10\u001b[0m sns\u001b[38;5;241m.\u001b[39mbarplot(x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msubset\u001b[39m\u001b[38;5;124m'\u001b[39m, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mproportion\u001b[39m\u001b[38;5;124m'\u001b[39m, hue\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmm\u001b[39m\u001b[38;5;124m\"\u001b[39m, data\u001b[38;5;241m=\u001b[39mmelted_df)\n\u001b[1;32m 11\u001b[0m plt\u001b[38;5;241m.\u001b[39mtitle(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mSubsets by method\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "\u001b[0;31mNameError\u001b[0m: name 'plt' is not defined" - ] + "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", + "
  anc_of_goslim_genericanc_of_goslim_agr
modelmethod  
N/Astandard_no_ontology0.0240.014
closure0.0580.027
random0.0580.041
gpt-3.5-turboontological_synopsis0.0720.052
no_synopsis0.1030.063
narrative_synopsis0.1220.066
N/Astandard0.1390.074
text-davinci-003ontological_synopsis0.1220.088
N/Arank_based0.1340.091
text-davinci-003no_synopsis0.2070.105
narrative_synopsis0.1500.116
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 164, + "metadata": {}, + "output_type": "execute_result" } ], + "source": [ + "means[[\"anc_of_goslim_generic\", \"anc_of_goslim_agr\"]].sort_values(\"anc_of_goslim_agr\", ascending=True).style.highlight_min(axis=0, props='font-weight:bold').format(precision=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "id": "18ccc356", + "metadata": {}, + "outputs": [], "source": [ "# Reset the index of the pivoted DataFrame to have 'profession' as a column\n", - "subsets_df = subsets_df.fillna(0).groupby([MODEL, METHOD])[subsets_cols].mean(numeric_only=True).reset_index()\n", + "#subsets_df = subsets_df.fillna(0).groupby([MODEL, METHOD])[subsets_cols].mean(numeric_only=True).reset_index()\n", "\n", "# Melt the DataFrame to have 'category', 'profession', and 'percentage' columns\n", - "melted_df = subsets_df.melt(id_vars=[MODEL, METHOD], var_name='subset', value_name='proportion')\n", - "melted_df[\"mm\"] = melted_df[MODEL] + melted_df[METHOD]\n", - "melted_df\n", + "#melted_df = subsets_df.melt(id_vars=[MODEL, METHOD], var_name='subset', value_name='proportion')\n", + "#melted_df[\"mm\"] = melted_df[MODEL] + melted_df[METHOD]\n", + "#melted_df\n", "# Create a bar plot using Seaborn\n", - "plt.figure(figsize=(10, 6))\n", - "sns.barplot(x='subset', y='proportion', hue=\"mm\", data=melted_df)\n", - "plt.title('Subsets by method')\n", - "plt.xlabel('Subset')\n", - "plt.ylabel('Proportion')\n", - "plt.legend(title='Subsets')\n", - "plt.show()" + "#plt.figure(figsize=(10, 6))\n", + "#sns.barplot(x='subset', y='proportion', hue=\"mm\", data=melted_df)\n", + "#plt.title('Subsets by method')\n", + "#plt.xlabel('Subset')\n", + "#plt.ylabel('Proportion')\n", + "#plt.legend(title='Subsets')\n", + "#plt.show()" ] }, { @@ -2525,8 +2752,8 @@ }, { "cell_type": "code", - "execution_count": 35, - "id": "e21245ca", + "execution_count": 166, + "id": "6a587eee", "metadata": {}, "outputs": [], "source": [ @@ -2543,7 +2770,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 167, "id": "35fddeb4", "metadata": {}, "outputs": [ @@ -2551,29 +2778,29 @@ "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", @@ -2596,186 +2823,203 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  has top hitin top 5in top 10size overlapsimilaritynum termsnum GO termsnr size overlapnr similaritymean p valuemin p valuemax p valueproportion significantnum novelhas top hitin top 5in top 10size overlapsimilaritynum termsnum GO termsnr size overlapnr similaritymean p valuemin p valuemax p valueproportion significantnum novel
model
N/Arandom0.0190.0000.0003.7120.01163.98163.9810.3650.0070.9540.3471.0000.04660.269
rank_based0.0580.0000.0008.1350.02571.69271.6920.6730.0140.9130.2511.0000.08763.558
standard1.0001.0001.000161.0580.970167.115161.05814.4420.9730.0080.0000.0461.0000.000
standard_no_ontology0.5960.5000.51937.2120.24545.67345.6735.3650.2140.2270.0010.9820.7788.462
gpt-3.5-turbonarrative_synopsis0.1150.1150.1152.0380.0175.0383.5770.3650.0200.4190.1650.7160.5831.538
no_synopsis0.2310.2120.2313.0190.0286.2125.3270.5580.0360.4330.1350.8090.5672.308
ontological_synopsis0.2120.2120.2122.6920.0305.3464.0580.4810.0320.3330.0830.6090.6701.365
text-davinci-003narrative_synopsis0.0580.0580.0581.4420.00910.8854.1920.2880.0210.6170.3340.8130.3842.731
no_synopsis0.0960.0960.0961.4810.0087.8653.9810.2500.0130.6180.3130.8340.3842.481
ontological_synopsis0.0960.0580.0772.6730.02012.7887.6730.4620.0260.6760.3090.9430.3255.000N/Aclosure1.0000.0000.000161.5770.0763388.4623339.5192.6920.0180.9180.0001.0000.0820.000
random0.0380.0190.0193.8850.01164.01964.0190.3080.0040.9600.3851.0000.04030.423
rank_based0.0380.0000.0008.2120.02471.69271.6920.3080.0090.9150.2511.0000.0867.385
standard1.0001.0001.000161.5770.970167.731161.57714.6730.9740.0080.0000.0461.0000.000
standard_no_ontology0.5960.4620.48137.8460.24446.48146.4815.2880.2050.2320.0000.9810.7730.000
gpt-3.5-turbonarrative_synopsis0.1540.1540.1542.1150.0185.4043.7690.4620.0350.4380.1710.7450.5640.212
no_synopsis0.1540.1350.1543.1150.0277.2885.7690.5580.0330.4280.1030.7360.5730.481
ontological_synopsis0.2690.2500.2692.8460.0316.2124.8080.5770.0390.3860.1160.6750.6150.077
text-davinci-003narrative_synopsis0.0770.0770.0771.3080.01010.6353.9810.3460.0210.6420.2840.8910.3600.327
no_synopsis0.1350.1150.1351.6150.0098.8464.5580.3460.0170.6500.3460.8850.3510.673
ontological_synopsis0.1350.0770.1352.2500.01811.4426.7880.4620.0240.6460.2320.9430.3550.442
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 36, + "execution_count": 167, "metadata": {}, "output_type": "execute_result" } @@ -2787,7 +3031,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 168, "id": "8c00964a", "metadata": {}, "outputs": [ @@ -2795,19 +3039,19 @@ "data": { "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2820,57 +3064,65 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  proportion significantnum GO termshas top hitnum novelproportion significantnum GO termshas top hitnum novel
model
gpt-3.5-turbonarrative_synopsis0.5833.5770.1151.538N/Aclosure0.0823339.5191.0000.000
gpt-3.5-turbonarrative_synopsis0.5643.7690.1540.212
no_synopsis0.5675.3270.2312.308no_synopsis0.5735.7690.1540.481
ontological_synopsis0.6704.0580.2121.365ontological_synopsis0.6154.8080.2690.077
text-davinci-003narrative_synopsis0.3844.1920.0582.731text-davinci-003narrative_synopsis0.3603.9810.0770.327
no_synopsis0.3843.9810.0962.481no_synopsis0.3514.5580.1350.673
ontological_synopsis0.3257.6730.0965.000ontological_synopsis0.3556.7880.1350.442
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 37, + "execution_count": 168, "metadata": {}, "output_type": "execute_result" } @@ -2882,26 +3134,27 @@ }, { "cell_type": "code", - "execution_count": 38, - "id": "b65642d6", + "execution_count": 171, + "id": "c7487343", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -2909,80 +3162,69 @@ " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  num GO termssize overlapnr size overlapproportion significantnum GO termshas top hitnum novel
model    
N/Arandom63.9813.7120.365
rank_based71.6928.1350.673
standard_no_ontology45.67337.2125.365
gpt-3.5-turbonarrative_synopsis3.5772.0380.365gpt-3.5-turbonarrative_synopsis0.5673.3460.1540.269
no_synopsis5.3273.0190.558no_synopsis0.5656.1150.1150.462
ontological_synopsis4.0582.6920.481ontological_synopsis0.6454.4620.1920.038
text-davinci-003narrative_synopsis4.1921.4420.288text-davinci-003narrative_synopsis0.4024.2310.0770.385
no_synopsis3.9811.4810.250no_synopsis0.3724.6150.1540.769
ontological_synopsis7.6732.6730.462ontological_synopsis0.3536.9620.1150.462
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 38, + "execution_count": 171, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "agg_table(df, [NUM_GO_TERMS, SIZE_OVERLAP, NR_SIZE_OVERLAP], [\"standard\"])" + "df_no_perturb = df.query(f\"{GENE_RANDOMIZATION_FACTOR} == 0\")\n", + "agg_table(df_no_perturb, [PROPOTION_SIGNIFICANT, NUM_GO_TERMS, HAS_TOP_HIT, NUM_NOVEL], [\"closure\", \"standard\", \"standard_no_ontology\", \"random\", \"rank_based\"])\n" ] }, { @@ -2995,7 +3237,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 25, "id": "bd936323", "metadata": {}, "outputs": [ @@ -3003,29 +3245,29 @@ "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", @@ -3048,186 +3290,186 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  has top hitin top 5in top 10size overlapsimilaritynum termsnum GO termsnr size overlapnr similaritymean p valuemin p valuemax p valueproportion significantnum novelhas top hitin top 5in top 10size overlapsimilaritynum termsnum GO termsnr size overlapnr similaritymean p valuemin p valuemax p valueproportion significantnum novel
model
N/ArandomTrueFalseFalse220.04217817830.0671.0001.0001.0000.250170
rank_basedTrueFalseFalse500.09020020050.0691.0001.0001.0000.333188
standardTrueTrueTrue4911.000491491321.0000.0240.0020.0501.0000
standard_no_ontologyTrueTrueTrue1000.449113113110.8000.5150.0291.0001.00021
gpt-3.5-turbonarrative_synopsisTrueTrueTrue60.18210920.1111.0001.0001.0001.0006
no_synopsisTrueTrueTrue110.167161620.2501.0001.0001.0001.00014
ontological_synopsisTrueTrueTrue90.22210920.2501.0001.0001.0001.0008
text-davinci-003narrative_synopsisTrueTrueTrue70.049251420.2861.0001.0001.0001.0009
no_synopsisTrueTrueTrue60.048161320.1001.0001.0001.0001.0008
ontological_synopsisTrueTrueTrue150.114282230.2501.0001.0001.0001.00021N/ArandomTrueTrueTrue270.04618218220.0671.0001.0001.0000.16375
rank_basedTrueFalseFalse500.09020020020.0481.0001.0001.0000.33353
standardTrueTrueTrue4911.000491491331.0000.0240.0000.0501.0000
standard_no_ontologyTrueTrueTrue1010.449113113110.8000.5410.0001.0001.0000
gpt-3.5-turbonarrative_synopsisTrueTrueTrue70.143141130.3331.0001.0001.0001.0002
no_synopsisTrueTrueTrue90.125401930.2501.0001.0001.0001.0003
ontological_synopsisTrueTrueTrue90.182111020.2861.0001.0001.0001.0001
text-davinci-003narrative_synopsisTrueTrueTrue70.044281220.1821.0001.0001.0001.0003
no_synopsisTrueTrueTrue90.060201230.1581.0001.0001.0001.0004
ontological_synopsisTrueTrueTrue90.116282030.1881.0001.0001.0001.0003
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 39, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -3249,13 +3491,13 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 26, "id": "6f79eece", "metadata": {}, "outputs": [ { "data": { - "image/png": "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jbKa+prfi9ioqu8/++wzzJo1C7t370ZSUhImT56Mu+++2zi8yr6vu9dffx3PPfdclff9/Oc/x9///nd89dVXeOqpp7B371506NABd955JyZMmGDU8/l8eOKJJ/D5558DAEaMGIEHH3yw0imGM8VAJiIiSgA8ZE1ERJQAGMhEREQJgIFMRESUABjIRERECYCBTERElAAYyERERAmAgUxERJQAGMhEFFNc2oDozDCQiSgmiouL8fvf/x4bNmyI6fOuXbsWvXv3rrTGOVFTw0AmopjIycnBp59+Cl3XY/q8ffr0wX/+8x/06dMnps9LlGi4HzIRJTSXyxWzxfuJEhlHyERxEAqF8PTTT2PEiBHo168fpk+fjv/973/o3bs3Dhw4AADYsGEDpkyZgnPPPRdDhw7FH/7wB+Tn5xvP8fHHHyMrKwubN2/Gtddei759++Liiy/GnDlzol4rGAziySefxMiRI3HOOedg8uTJWLx4cVSdrVu34pZbbsGgQYMwYMAATJ06FZs2bYqqc7r2rF27FjfffDMA4Oabb8ZNN91U674IBAJ4+OGHMWLECJxzzjkYP3581Hs49ZD16NGj0bt37yr/lfVdbd4zUaLhCJkoDh566CEsXLgQd955JzIzM7Fw4UL85S9/Me5fv349br31Vpx//vl4/vnnUVRUhBdeeAE333wzPvzwQ9hsNgCAruu4++67MXXqVNx999348MMP8eSTT6JXr14YPnw4hBD49a9/je+//x533XUXunfvji+++AL33HMPVFXFFVdcAY/HgxkzZuD888/HSy+9BFVV8dprr2H69OlYuXIlkpKSamxPnz598NBDD+GRRx7BQw89hPPOO6/WffHEE0/gm2++wR/+8Ae0bNkSX331FZ588kmkpKTgqquuqlT/5Zdfjtok/sSJE7j33nsxePBgtG3btlbvmSghCSJqUHl5eaJ3795i7ty5UeXTpk0TvXr1Evv37xfXXnutmDRpkgiHw8b9u3fvFpmZmWLevHlCCCE++ugj0atXL/HBBx8YdYLBoOjbt6945JFHhBBCfPPNN6JXr15i0aJFUa913333iQsvvFCEQiHxww8/iF69eomNGzdGtfHJJ58Uhw8fFkKIWrVnzZo1olevXmLNmjV16o9x48aJBx98MKrs5ZdfFitWrKjxeYPBoLjmmmvEmDFjRGFhYa3fM1Ei4iFroga2du1aCCEwfvz4qPJJkyYBiBzC3bx5M0aOHAkhBMLhMMLhMDp27Iju3bvj22+/jXrcgAEDjP+3WCxIS0uDz+cDAKxevRqSJGHkyJHG84TDYYwePRrHjx/Hjh070LNnT6SlpeGXv/wlHnroIXzxxRdo2bIl7r//fqSnp8Pv99epPXV13nnn4YMPPsDMmTMxb9487N+/H7/+9a8xatSoGh/75z//GTt27MArr7yC5OTkWr9nokTEQ9ZEDazsvGuLFi2iystuFxUVQdd1zJ49G7Nnz670+LJN6suUHb4uI8uycS1wYWEhhBAYOHBglW05duwYMjMz8c477+C1117DZ599hv/85z+w2Wz42c9+hgcffBDFxcV1ak9d/fnPf0Z6ejrmz5+PRx99FI8++igGDBiAhx9+GBkZGdU+btasWZg/fz5eeOEF9O7d2yiv7XsmSjQMZKIG1qZNGwCRc5/t2rUzysuC2uVyQZIkTJ06FRMnTqz0eLvdXuvXSkpKgsPhwFtvvVXl/Z07dwYAdOvWDU899RQ0TcOWLVvw6aef4r333kOnTp1w3XXXxaw9VbFYLPjVr36FX/3qVzh06BBWrFiBV199Fffeey8WLVpU5WOWL1+O5557DrfffnulIw21fc9EiYaHrIka2KBBg6AoCr744ouo8qVLlwIAnE4nsrKysHv3bvTt29f417NnT7z00kt1WiBj6NCh8Pl8EEJEPdf27dvxyiuvIBwOY8mSJTj//PNx/PhxKIpijE7dbjcOHToEl8tVq/YoilLnvggEAhg3bhzmzp0LAGjXrh1uvPFGTJw4EYcOHaryMdu3b8d9992Hiy66CHffffcZvWeiRMQRMlED69ixI6666io8++yzCIVCyMjIwBdffIEVK1YAiBxy/t3vfofbbrsN9957Ly6//HJomoa5c+di8+bNuOOOO2r9WiNHjsSQIUNwxx134I477kD37t2xZcsWvPjiixg+fDjS0tIwcOBA6LqOX//617jtttvgdDrx2WefoaSkBGPHjgWAWrUnKSkJALBy5UokJyef9nBzGZvNhj59+uDll1+G2WxG7969sWfPHnzyyScYN25cpfqFhYX45S9/CYfDgdtvvx1bt26NWoikU6dOtXrPRIlIEoILzxI1NFVV8cwzz2DBggXweDwYNmwY+vTpg1deeQVr165FSkoKVq9ejZdffhlbt26F2WxGnz59cOedd2Lw4MEAItchP/DAA1i2bBk6dOhgPPfo0aMxdOhQ/P3vfwcA+Hw+vPDCC1iyZAlOnjyJNm3aYOLEifj1r39tnP/dsmULXnjhBWzduhV+vx89e/bEL3/5S1x66aXG89bUHl3Xcf/99+OLL75Ap06dsHDhwlr1hcfjwfPPP49ly5bh+PHjaNGiBSZMmIDf/va3sNlsxjXOZYegy653rsrf/vY3XHnllbV6z0SJhoFM1MAKCwvx1VdfYfjw4UhNTTXK//GPf+Djjz/mms1EzRQPWRM1MLvdjscffxyZmZm45ZZb4HA4sGnTJsybNw+33357vJsXM7U5VyvLMmSZU1mIAI6QieIiJycHzz//PDZt2gS/32/MZr7xxhshSVK8m3fWDhw4gDFjxtRY7ze/+Q3uvPPOBmgRUeJjIBNRzKmqim3bttVYr3Xr1sZlYETNHQOZiIgoAfDkDRERUQJgIBMRESUABjIREVECYCATERElAAYyERFRAmAgExERJQAGMhERUQL4f8HhaV95jhNuAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAHjCAYAAADyq2xBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4t0lEQVR4nO3deXhU1cE/8O+9s2+ZJGxh30MSFgEBRUUQlR1fReuKG5utrda22tbW15/Valv3vb4g1Cpa6i67IKKIAgIKCAn7voUlZJn1zr33/P6Y5JIhCUlgkpkk38/z8OicOXfm5GSSb869554jCSEEiIiIKKHkRDeAiIiIGMhERERJgYFMRESUBBjIRERESYCBTERElAQYyEREREmAgUxERJQEGMhERERJwJzoBiQDTdNRUOCvtp4sS0hPd6GgwA9d53oq9Yl9nzjs+8Rh3ydGvPu9RQtPzd73vN+pCZFlCZIkQZalRDelyWHfJw77PnHY94mRqH5nIBMRESUBBjIREVESYCATERElAQYyERFREmAgExERJQEGMhERURJgIBMRESUBBjIREVESYCATERElAQYyERFREmAgExERJQEGMhERURJgIBMRESUBBjIREVESYCATERElAQYyERFREmAgExERJQEGchxJEqCL6H+JiIhqg4EcZ75gBIqqM5SJiKhWGMjxJgSKfArCEYYyERHVHAO5DqiajiJ/GOGIxlAmIqIaYSDXEU0TKPIrCDGUiYioBhjIdUjTBIr9CoIKQ5mIiM6OgRwnuhDYd7QEIUWNKdc0gRK/gmBYhcRUJiKiKpgT3YDG4sOvdmHxmv1w2c24Y1QPtG/pMZ7TdIHiQAQCgNNmgRAicQ0lIqKkxBFynOw+VAQA8IdUzFyQhz1HimOe13WBkkAEgXCEI2UiIqqAgRwn4y/rDLMpGrRKRMdbi7ZiZ2lIlzFCOcRQJiKiWAzkOOnZKR33X98HFlO0SyOqjrcXb8W2/adi6um6QEmQoUxERLEYyHHUu2szTB2fA4s52q2qJjB7yXZs2VMQU68slP0MZSIiKsVAjrPM9qmYNCYbNosJQHRC13++2I6NO0/E1NN1AR9DmYiISjGQ60DHDA8mjc2G3RoNZV0A73+5E+u3HYupx1AmIqIyDOQ60r6lG1PG5cBpj95ZJgB89PVurMnNj6nHUCYiIoCBXKfaNHdh6rgceBwWo+yzlXvw7U9HYuoxlImIiIFcx1qlOzF1fA68LqtRtmDVPnz146GYegxlIqKmjYEcZ7IsVVi3unmqA1PH5yDNYzPKlqw9gC/WHYhZtcsI5aDCUCYiamIYyHEkBOB2WuC0mSuEcnqKHdPG56CZ126UffnDISxes7+SUFYZykRETQwDOd4EkOKywmW3VAhlr9uGaeNz0DLNYZR9s+kI5n+3D3r5UBbRUPYFFe4SRUTURDCQ64AQgMdpgctugXxGonqcVkwdn4PWzZxG2aotR/HpN3ug67Gh7A+qKAlEGMpERE0Ad3uKk8JQCM+88yOKfAq8biseur0f0pwOyBJQ4Ath/sq9OFkcQrMUO0Zf0hFTxuXgXwvzcPC4HwCwbusxqKqO64d1hUmOJnAwEsGnK3fhZFEIiqIhEFaQ7nWidboTIy5rj1f+81PM+6Xa7WdrYgUhVcX7X+zAsVNBtExzVPmaZ9a78aruUHUdr3+4GSeLgmjmdeDeG3rBbbVW/6ZxUFl77GZ+lImoYZNEEu0F+H//939YuXIl3nnnnSrrnDp1Cn/961+xYsUKSJKEsWPH4ve//z0cDkeVx1RH03QUFPirrWc2y0hLc+HUKT9UVTfKf/3SCpQE1Qr1PQ4zenVthn1HfSjyK/AHI8ZzPdp7cdOV3fHvxduw72iJUd6rSzpuGt4Nsz/fhm0HoptT2CwmpHvtUCIaCopDqOo75nGY8dKvL6/R1/ziBxuwaVdBtfVkKbqwSU20TnfgyWmDa1a5lsr6/n//+S02nLHqGQD06ZqOB37Wt07eu6mr6nNPdY99nxjx7vcWLTzVV0ISnbJ+99138eKLL1Zb7/7778e+ffvw1ltv4aWXXsLXX3+Nxx57rM7bV5WqwhgASoIqVm3Ohy8Ygddlhcd5+n7kbQeK8N9lO3D36Cx0aZNilG/eXYC/z/7BCGMACEc0nCwMwmo2oZnXXuUp7JKgil+/tKLaNtc0jIGahzEAHCkI4s/TV9X8gFr6y8xVlYYxAGzaVYAXP9hQZ+9NRFTXEh7I+fn5+PnPf45nn30WnTp1OmvdH3/8Ed9//z3+8Y9/oGfPnhg8eDAef/xxfPbZZ8jPzz/rsXWhMBSqMozLK/YrKPYr8DitSCl3P/K2A0UQksCdo7KQ2T7VKPeHKr6mouo4URSExWRCc6/jrKFcGApV2ZaQqtY4jM/FkYIgfIoS99cNqSrW5R47a51NuwoQUqv/fhARJaOEX3jbsmULLBYL5s6di9deew2HDh2qsu66devQokULdO3a1SgbNGgQJEnC+vXrMWbMmHNuh9lc/d8mptKtFcv++8zsH2v8+r5gBEIIeN02yLKEwpIwAGDx6v2YMLQr7hzdA+8t3Y4te05V+RqR0lBu5rWjeaoDJwuDlY5gn5n9I/7x80srfY0PluyqcZvP1T8/3oyHJw6I62u+u2h7jep98OUu3D0mO67v3dSd+bmn+sO+T4xE9XvCA3n48OEYPnx4jerm5+ejdevWMWVWqxWpqak4cuRIFUdVT5YlpKW5alw/JSV6vbrEV7vRmD+kQhdAmscGCcCpkjCKfBF4vdEZ1/fe0Bd/fG0lSgKRKl8jouo4URhC81Q7mlURyiU+tcqv51RxuFZtPhenipVa9WdNnCyqetQf+97huL83RZV97qn+se8To777PeGBXBvBYBDWSmby2mw2hMPnHjS6LlBcHKi2nskkIyXFgeLiIDRNh8dthi9UdXhWJhhWIYRAWood6ZIEr9uCoqLT753dMRXf5x0/62uomo4ThdHZzc1THThRFIq5ZcrjNuPUqconqaWl2Cotj6e0FGuV73+uyi+ocvb3tsX9vZu6Mz/3VH/Y94kR736v6SChQQWy3W6HUsn1yXA4DKfTWckRNVebmXSapkNVdTw0sR9+++J3tX6vkKKhoCiEdK8d1wzpDE07HaajB3esNpABQNUEThQG0TzVgRapDhwvDBqh/NDEflV+PT8b3hXLf6j6skA8/GJCr7jPCL3p6m5Ytv5gtfV+NrwrZ6PWkbLPPdU/9n1i1He/N6gLExkZGTh2LHZij6IoKCwsRMuWLeu9Pal2OzyOc/ubJhzR0DrdgVapTlgtp78NNrMZPdp7a/Qamh4NZQBokeqASZbgcZjPej+y3WxGn67p59Tmmmid7qiT+5HtZjMG5Jz9e9ynazrvRyaiBqtBBfLAgQNx9OhR7Nu3zyj7/vvvAQAXXnhhQtr00q8vrzKUPY6qw69P13T8akIfyJKEVLcdtnKhfOfo7FqF8vHCIIQQ6NjKXaP7kB/4Wd8ah7Jci1XC6vI+ZAD4f5MHo2+35pU+x/uQiaihS+rhhKZpKCgogMfjgd1uxwUXXID+/fvjN7/5DR577DEEAgE8+uijuPbaa9GqVauEtfOlX19e6UpdZSPV6laWkiUg1WNDoU9BWNEAREM5rKqYt3IPNu85BSVy+rSJ1Sxj4phumLdiH0r8EXhcFky6JgstPE4IADXJ0Ad+1rdBrtT125v7whdSuFIXETU6SbVS1x//+EccOnTIWKnr4MGDuPLKK/G3v/0NEyZMAACcPHkSf/nLX/DNN9/AZrNh1KhRePjhh2GznftkpfNdqSteBASKfApCpaFc3ooNh7H4+/3G4xSnBZPH5aBFauwsQJtFhtdtr9XItiHgikWJw75PHPZ9YiRqpa6kCuRESZZAjhLGSPnMb8x3m6M7Q5VxOyyYNDYbGemxE9qioWyrsLFFQ8ZfTInDvk8c9n1iNPmlM6mMhFS3FXarqcKp50t6tca1Qzob5b5gBG/Oy8WhE7F/TIQjOgp9YWi1WfeSiIgSioGclCR43TbYbeYKS2QOym6F64d1NcoDYRUz5+dif35JTD0loqPIz1AmImooGMhJzOuywlFJKPfPbIGbhnczrhOHFA2zFuZhz5HimHoKR8pERA0GAznJpbiscFYSyn26NsetV2caeycrER1vLdyKnQeLYupF1NJQ1hjKRETJjIGc7ERpKNstFUI5p1M6Jo7IhNkUfSKi6Xj7863Yuj92g4qyUFa59B4RUdJiIDcAQkRvc3JVEso9OqThzlFZsJTuVqVqAu8u2Y4te2K3WIxoOop8CiKaXuXWjURElDgM5AZCCMDjtMDtsFS4nalrWy/uHpMFm8UEILp613++2I6NO0/E1CsLZUVlKBMRJRsGcgMSDWUr3A4z5DNW/uiUkYJJY7Nht0ZDWRfA+1/uxPptsWt/q6WhHI4wlImIkgkDuYHRdQGXwxodKZ8Ryu1bujFlXA6c9ugykgLAR1/vxprc/Jh6qha9JSoU0RjKRERJgoHcAAkh4LJb4KkklNs0d2HquBx4HBaj7LOVe/DtT0di6mmaQLFfQVBhKBMRJQMGcgMlhIDTbkGK02Lc+lSmVboTU6/Jgdd1erOHBav24asfY/dB1jSBEoYyEVFSYCA3YEIIOGxmeFxWmEyxidrc68C0a3KQ5jm96caStQewdN0BlF++XNNLQzmsQmIqExElDAO5gRMCcFhNSKkklNM8dkwbn4PmXrtRtvyHQ1i8Zn+FUC4ORBAIRxjKREQJwkBuBIQA7BYTvC4bzKbYb6nXbcPU8TlomXZ6m8ZvNh3BvG/3Qi8XyrouUBKIwB9iKBMRJQIDuZEQomzbRWuFUPY4rZg6Pgetm53epnF1bj4+/WYPdD02lH3BCPxBhaFMRFTPGMiNiBCA1RwNZcsZoeyyWzBlXA7atXAZZeu2HsOHX+2K2XwiGsoqfEGFE72IiOoRA7mREQKwmGSkum3GcpplHDYzJo3NRseM05tlb9h5Av9dtiNmnWtdCPiDKkoCEYYyEVE9YSA3UiaTVGko261m3D06C13apBhlm/cU4L2lOxBRzwjlUIShTERUTxjIjZhJjoay1RL7bbZaTLhzVBYy26caZVv3n8LsJdugqJpRJgQYykRE9YSB3MiVhbLtjFC2mGVMHJGJ7I5pRtmOg0X496JtCEcqhnKxXwEYykREdYaB3ATIkgSv214hlM0mGbde3R29uzQzyvYcKca/FuYhpKhGmRBAIKyihKFMRFRnGMhNhCwBqR4bbKW7QZUxyTJuGt4N/TObG2X7832YuSAPgVDFUOZImYiobjCQmxAJElLdVmOLxjKyLGHC0K4YlN3SKDt03I835+fCF4wYZUIAwbCKIp9Sb20mImoqGMhNTFkoO6ymmIGuLEn4n8s645JeGUbZ0YIAZszLjY6KSwkBhBQVRX6GMhFRPDGQmyQJXrcNdps5Zva0JEkYO7gjhvZtY5QdLwxixrxcFPrCRpkQQChcFsoCRER0/hjITZjXZYWjklAeMbA9rrywnVF2sjiE6XO3oKA4ZJQJlIayj6FMRBQPDOQmLsVlhbOSUL7ywnYYNaiDUVboUzB97hYcLwwaZQJAUNFQyFAmIjpvDOSmTpSGst1SYfGPy/u2wbhLOhmPiwMRzJiXi6MFgZh6odJQFgxlIqJzxkAmCAGkOC1w2S2Qz0jlS3pl4LohnY0JYL5gBG/Oy8WhE/6YegxlIqLzw0AmANFQ9jgtcDnMFUJ5YHYr3DCsqzGCDoRVzJyfiwPHSmLqhRnKRETnjIFMBiEAt8MKt8MMWY4N5X6ZLXDzld2NsA4pGmYuyMOeI8Ux9RjKRETnhoFMMYQQcDmscDssFUK5d5dmuO3q7jCVlisRHW8t2oqdB4ti6oUVDYUlYUYyEVEtMJCpAiEEXHYLPM6KoZzdKR23j+wBsylaHlF1vP35VmzbfyqmXjiio7AkBJ2pTERUIwxkqpQQAk6bBSkuqzEiLpPZPhV3js6CtXSvZVUTmL1kO7bsKYipF47oKPIxlImIaoKBTFUSQsBhNcHjssJkig3lrm28uHtMNmyW6LrYmi7wny+2Y+POEzH1whEdhb4QdMFUJiI6GwYynZUQgMNqgreSUO6Y4cHksdlw2KKhrAvg/S93Yv22YzH1lIiOQl+YoUxEdBYMZKqWEIDNYkKq2wazKfYj066lG1PG5cBpN0frAvjo691YnXs0pl5ZKGs8f01EVCkGMtWIEIDVLMPrtsJyRii3bubC1PE58DgsRtnclXuxctORmHoMZSKiqjGQqcaEACwmGaluGyzm2I9OqzQnpl6TA6/LapQtXL0PX/14KKZeRGUoExFVhoFMtWYySUh122C1xH58mnsdmDo+B2kem1G2ZO0BLF13AKLc9WMjlDWGMhFRGQYynROTHA1l2xmhnJ5ix7TxOWjutRtly384hMVr9lcayqqm11ubiYiSGQOZzpksSUj12GGzmmLKvW4bpo7PQcs0h1H2zaYjmPfd3piZ1hFNR5FPQUTTK+w0RUTU1DCQ6bxIAFLdVtjPCGWP04qp43PQupnTKFu9JR+ffrMHul4xlBWVoUxETRsDmc6bBAmpbiscVlNMqLrsFkwZl4N2LVxG2bqtx/DhV7tiJnWpDGUiIgYyxYsEr9sGu9UcE6oOmxmTxmajY4bHKNuw8wT+++UOaPrp68dloRyOMJSJqGliIFNced1WOG2xoWy3mnH36Cx0aZNilG3eXYB3l+xARD0jlP1hhCMaQ5mImhwGMsWXAFJcVrjslphQtVpMuHNUFjLbpxplW/efwuwl26ComlGmaQJFfgUhhjIRNTEMZIo7IQCP0wKX3QK5XKpazDImjshETqc0o2zHwSL8e9E2hCOxoVzsVxBUGMpE1HQwkKlOREPZCrfDHLOnstkk45aruqN3l2ZG2Z4jxfjXwjyEFNUo0zSBEoYyETUhDGSqM0IIuBxWeByWmFA2yTJuGt4N/TObG2X7832YOT8PgVC5UNZLQzmsMpSJqNFjIFOdEkLAabcgxWmBqVwoy7KECUO7YlB2S6Ps0Ak/3pyfC18wYpRpukBxIAJ/uaAmImqMGMhU54QQcNjMSHHH7qksSxL+57LOuLRXhlF2tCCAGfO2oNivGGW6LlASUFDsUzhSJqJGi4FM9UIIwG4xweuK3VNZkiSMGdwRQ/u2McqOF4Ywfd4WFPrCRpmuC/hCCnzBCCSmMhE1QgxkqjdCADZLxT2VJUnCiIHtcdWAdkZZQXEY0+duwcniUMzxvmAE/hBDmYgaHwYy1auq9lSWJAnD+7fDqIs6GGWFPgUz5m7BscKgUabrIhrKQYWhTESNCgOZEqJsT+XyoQwAl1/QBuMu6WQ8Lg5EMGNeLo6c9Btl0VBW4QvymjIRNR4MZEqYsj2VrWfsqXxJrwxcN6QzyrLWH4xg+me52H+02KijCwF/UEVJIMJQJqJGgYFMCVVVKA/MboUbhnU1wjYQVvHCf37EvqMlRh1dCPhDEYYyETUKDGRKOFmKhrLtjFDul9kCNw3vbiy/GQyreHN+LvYcOT1SFgIMZSJqFBjIlBRkSYLXba8Qyn26NsOtV3c3FhVRIjreWrgVOw8WGXXKQrmYoUxEDRgDmZKGLAGpnoqhnNMpHXeOzjImgEU0HW9/vhVb958y6ggBBEKR6IIiDGUiaoAYyJRUJACpHhtsVlNMeY8OqfjVzy6AtTSUVU3g3SXbsWVPgVFHiOi15hKGMhE1QAxkSjoSJKS6rRVDuWM6Jo/Lhs0SLdd0gf98sR0bd54w6pSFMkfKRNTQMJApKZWFsv2MUO7UOgWTx2bDYYuW6wJ4/8udWL/tmFFHiOgEsCKfAiKihoKBTOdE1XV8t/kI5n+3B99tPgJV1+P+HhIkeMuFsq4LHDzuQzCs4ppLO8FpNwMABICPvt6N5//7Iz5dsQthVYUQQEhRUeRnKBNRw2BOdAN0Xcerr76KDz74ACUlJRg4cCAeffRRtG/fvtL6J0+exFNPPYVvv/0WQghccskl+OMf/4hWrVrVc8ubrsVr9mHBqn0IhlUIRM8M/+eLHRg7uCNGXdQxru9VNlL+aU8B/v35NhzOL4GqAyYZaJZiQ0jRoOsCAHCiKIwTRcfx/dbj6NHeiztHZyMUjm7b6HVZwHPYRJTMEj5Cfv311/Hee+/hiSeewJw5c6DrOqZMmQJFqXxk88ADD+Dw4cP417/+hX/96184fPgwfvnLX9Zzq5uuxWv24aOvd8MfUiFLEkyyBFmS4A+p+Ojr3Vi8Zl/c3zNv7yksXr0P4bAGh90Mt9MCq8WEQyf8RhifaduBIvx7UR4EgJBx+rryukREySChgawoCmbNmoX7778fw4YNQ1ZWFl544QUcPXoUS5YsqVC/uLgY33//PaZOnYrs7Gzk5ORg2rRp+Omnn1BYWFj/X0ATo+o6FqzaB00XsJgkyKVhLMsSLCYJmi6wYNW+uJ6+1oXAgtX7cORkAKluK1qlu2A1yzCbZFT3NtsOFEVPXwMIKhoKGcpElMQSesp669at8Pv9GDx4sFGWkpKCnJwcrF27FuPGjYupb7fb4XK58Omnn2LQoEEAgM8++wydO3dGSkrKebXFbK7+bxNT6ZaBJlPCTywkxJqf8hEMqzCbJEhy7OlfSZJgRnQy1fptx3Fp79Zxec89R4qRXxCAy25BcUCB22FFeoodew4XV38wgEWr9uH6Yd0ARO9fLgmq8LqtxupfVL2m/rlPJPZ9YiSq3xMayEePHgUAtG4d+8u7ZcuWxnPlWa1W/P3vf8ejjz6KAQMGQJIktGzZErNnz4Ysn3vHybKEtDRXjeunpDjO+b0askBYj14zlqLXds8kSQKitF5t+vNs9uT7oQvAZjWV7oesIMVlRWqKDYGwioh69mHy9gPF8KQ4YgJYl2R4U+ww85dcrTTVz30yYN8nRn33e0IDORiM7nNrtVpjym02G4qKiirUF0IgLy8P/fr1w5QpU6BpGl544QXce++9+M9//gO3231O7dB1geLiQLX1TCYZKSkOFBcHoWnxn1Wc7Jw2GRKitxUJqeKpXyGi06acNhmnTvkrPH9OdA2yBISV6PVjVRUoKApBCIHmXgdOFgWhnCWUC31h/GvuZky4vAvkcqP64pIgUt02jpRroKl/7hOJfZ8Y8e73mg5QEhrIdrsdQPRactn/A0A4HIbDUfEvk0WLFmH27NlYvny5Eb5vvPEGrrjiCnz44Ye46667zrktajUjrfI0Ta9V/cbiwh4tMNtmhj+kwoLoaeoyQgiomoDLbsaFPVrErX/aNnehVboTh477YbeZICCiwS+AiKahWQ1CeW3eMUQiOq4f1tVYEzsQVKGpOlI9ds69rqGm+rlPBuz7xKjvfk/oObuyU9XHjh2LKT927FiltzGtW7cOnTt3jhkJe71edO7cGfv2xX92L8UyyzLGDu4IkywhognouoAuov+NaAImWcLYwR1hPo/LB2eSJQljL+4Iu9WEk8VhKBENuhBQVB2FvjAUVUOzVIexeld5jnKLimzYeQL/XbYDarm/dsMRHYUlIVQxUZuIqF4lNJCzsrLgdruxZs0ao6y4uBi5ubkYOHBghfoZGRnYt28fwuGwURYIBHDw4EF06tSpPprc5I26qCOuH9oFLrsZuhDQSkPZZTfj+qFd4n4fMgBkd0rH3WOy0al1CsKKhmKfgnBEQ2a7VHidFoQVDelee8xSmz3ae/GH2/qja9vTk/027ynAe0t3xFx3Dkd0FPkYykSUeJIQIqG/il544QXMmTMHTz31FNq2bYtnnnkGBw8exPz58yHLMgoKCuDxeGC323Hs2DGMHz8e/fv3x69//WsAwIsvvojc3FwsWLAAHo/nnNqgaToKCqq/5mk2y0hLc+HUKX+TP32k6jq+z81HQXEI6Sl2DMppFdeR8ZnMZhlerxMbth5FUUkYbqcFHVp5IEsSQqqKBSv3oKBEgSwBVw1qD5s5ejUmoup4b+l2bDtQaLxW93Ze3DYiE1bz6QC3WWR43XbIPH9dAT/3icO+T4x493uLFjXLpoQHsqZpeP755/Hxxx8jFAoZK3W1a9cOBw8exJVXXom//e1vmDBhAgBg165deOaZZ/Djjz9ClmUMGDAAf/jDH9CuXbvzaAMDOdnVpO8lCSgJRBAIqdDLfaxVTcecZTuQu/f0do2dW6fgjpE9YkbVVovMiV6V4Oc+cdj3idFkAzkZMJCTX037XpYllAQU+IOxoazpOj5Yvgubdp00yjq0cuOu0VmwW0/PbWQoV8TPfeKw7xMjUYHMGzGpUdF1AbfDCrfDHHObk0mWceMV3dA/s7lRtj/fh5nz8xAIRYwyJRKdLKbxojIR1TMGMjU6Qgi4HFZ4HJaYUJZlCROGdsWg7JZG2aETfrw5Pw++YGwoF/kZykRUvxjI1CgJIeC0W+BxWox7j4HobVT/c1lnXNIrwyg7WhDAjHlbUFxuq0aOlImovjGQqdESQsBpM8PjssaEsiRF75ce2reNUXa8MITp87ag0Hf6lrqIylAmovrDQKZGTYjoAiEpbitMpthQHjGwPa688PTs/ILiMKbP3YKTxSGjzAhljaFMRHWLgUyNnhCA3WKC11UxlK+8sB1GXdTBKCv0KZgxdwuOFwaNsoiqo9DPUCaiusVApiZBCMBmMSHVbauwy9PlF7TBuEs6GY+LAxFMn5eLowWnNxwpGymrXOCfiOoIA5maDCEAq1mG122F5YxQvqRXBq4b0tnYaMIfjGDGvFwcOnH6/vSIpqPIpyCi6eBtykQUbwxkalKEACymykN5YHYr3DCsqxG2wbCKmfNzsT+/xKhTFsqKylAmovhiIFOTZDZFV+SymGN/BPpltsDNV3Y3VuoKKRpmLczDniPFRh2VoUxEdYCBTE2WySTB67bBaon9MejdpRluu7q7cauUEtHx1sKt2HmwyKhTFsrhCEOZiOKDgUxNmlmWkFpJKGd3SsftI3vAXDorO6LpePvzrdi6//QGFaqmo9jPUCai+GAgU5MnSxJS3XbYzgjlzPapuHN0Fqylp7VVTeDdJduxeU+BUUfVostshiMaQ5mIzgsDmQiALAFetz1mO0YA6NrGi7vHZMNmiZZrusCcL7Zj484TRh1NEyjyKwgxlInoPDCQiUrJEpDqtlYI5Y4ZHkwelw2HLVquC+D9L3di/bZjRh1NEyj2KwgqDGUiOjcMZKJyJEiVhnK7Fm5MGZcDlz26d7IA8NHXu7E696hRR9MESgIMZSI6NwxkojOUhbL9jFBu3cyFKeNz4HFajLK5K/di5aYjxmNNEyjhSJmIzgEDmagSVYVyqzQnpo7PgddlNcoWrt6Hr348ZDzW9NJQDquQmMpEVEMMZKIqRUPZYTWhfKw29zow7ZocpHlsRtmStQewdO0BCBHdgELTBYoDEQTCEYYyEdUIA5norKKLh9ht5phT0GkeO6aNz0Fzr90oW/7jISxas98IZV0XKGEoE1EN1TqQP/nkE+Tn59dFW4iSltdlhd0aG8petw1Tx+egZZrDKFu56QjmfbsX+pmhHGIoE9HZ1TqQH3/8cWzatKku2kKU1LxuKxxnjJQ9Tiumjs9Bm2ZOo2x1bj4+XbEbul4ulIMR+BnKRHQWtQ7kjIwM+Hy+umgLUXITQIrLCucZoeyyWzB5XA7at3QbZeu2HceHX+2CVi6UfcEI/EGFoUxElTLX9oCbbroJTz75JH788Uf06NEDLperQp1rr702Hm0jSj6loQxJQiAUQemZaThsZtw9Jgv/XrwN+45Gt2vcsPMEVE3HjcO7wWySS0NZhUB0ZF02giYiAgBJlM1AqaGsrKyzv6AkIS8v77waVd80TUdBgb/aemazjLQ0F06d8kNV9XpoGZVJtr6XJJReG1aN68UAoEQ0vLNkG3YdOr1dY1aHNNxyVXdjq0dZkuBymOF2WFC7n77ESLa+b0rY94kR735v0cJTs/et7QsvW7as1o0hamyEADxOCyQJ8AdPh7LVYsIdI7Pw3tLt2HagEACwdf8pzF6yDbeNyITVbIIuoqevy16jIYQyEdW9Wgdy27Ztjf8PBoPw+XxITU2FxWI5y1FEjU80UK2QAPhCqnEK2mKWcduITMxZtgO5e6PbNe44WIR/L9qGO0b1gM1ighCAPxQBwFAmoqhzug953bp1uPHGG3HhhRfi8ssvR58+fXDTTTdh9erV8W4fUVLTdQGXwwq3wwJZPj1Zy2yScctV3dGnazOjbM+RYvxrYR5CigoARigXByJcZpOIah/IP/zwA+666y6UlJTg3nvvxf/7f/8Pv/jFL1BYWIgpU6bgxx9/rIt2EiUtIQRcdgs8Z4SySZZx4xXd0D+zhVG2P9+HmfPzECgdHQsBBEIRFPsVgKFM1KTVelLXHXfcAVmWMXPmTJhMp9f51XUdkydPhiRJmDVrVtwbWpc4qSv5NYS+lyQJwXAEJYGIcbsTAOhCYO7KPfg+7/R2jRnpTkwamw23w1J6LOC0meFxWaNbSSWRhtD3jRX7PjESNamr1iPkn376CXfccUdMGAOALMuYOHEiFw2hJksIAUdpqJpMp4e7siThfy7rjEt7ZRhlRwsCmDFvS3RkjNKRcljlSJmoCat1ILtcLqiqWulzqqqilgNuokZFCMBhNSHljFCWJAljBnfE0L5tjLLjhSFMn7cFhb6wcWyQoUzUZNU6kPv374/p06cjGAzGlAcCAUyfPh0DBgyIW+OIGiIhALvFBK/LBrPp9I+YJEkYMbA9rrywnVFWUBzG9LlbcLI4ZBwbDKso8in13m4iSqxaX0Pet28fJkyYAJvNhmHDhqFFixY4fvw4vvrqK4RCIbz33nvVLh6SbHgNOfk1xL6XJEBRdRT5FKhabJtXbDyMxWv2G49TnBZMGpeDlqkO41i71Ryz73KiNMS+byzY94nRYK4hd+zYEe+//z4GDRqEr7/+GjNnzsTXX3+NQYMG4f33329wYUxUV4QArGYZXrcVFlPsj9rlF7TB+Es6GY+LAxG8OS8XRwsCxrEhRUWRnyNloqai1guDHD58GB06dMCLL75Y4blwOIwffvgB/fv3j0fbiBo8IQCLSUaq24ZCfxiRcn9tD+6VAbNZxqcrdkMA8AWjoXz32Gy0be6KhnI4Ol8jGUbKRFS3aj1CvvLKK6tcq3rTpk24++67z7tRRI2NySQh1W2DxRL7IzcwqyVuuKKrsTBIIKxi5vxc7M+PblAhEA3lotKJX0TUeNVohPyPf/wDhYWFAKK3drz++utIS0urUC8vLw8eT83OlRM1NSZZQqrLhiJ/GErk9Ei5X/cWMJtk/HfZTuhCIKRomLUwD3eOykLn1inRUFY0wBeG120Fp2ATNU41CuQuXbrgn//8J4DoTNHNmzfDao09hWYymeDxePDwww/Hv5VEjYRJlpDqtqPIF0K4XCj37tIMZlnCe1/sgKYLKBEdby3cittH9kC3dt5yoawwlIkaqVrPsh4+fDhef/31RjV5i7Osk19j63sBgUKfgrCixZRvP1CI2Uu2QdWiP5Zmk4Rbr85EVofTZ6TsVhNS6zGUG1vfNyTs+8RoMLOsv/zySzidTnz44YdG2a5du/D000/j8OHDtX05oiZJgoRUtxV2a+yKd5ntU3Hn6CxYS/dOVjWBd5dsx+Y9BUadkKKh0KdAJNsam0R0XmodyBs2bMC1116LmTNnGmXFxcWYO3currvuOmzfvj2uDSRqrMpC2WE1xYx1u7bx4u4x2bBZomGt6QJzvtiODTtPGHVCioYihjJRo1LrQH7uuefQv39/fPLJJ0ZZv379sGzZMvTp0wdPP/10XBtI1LhJ8LptsNvMMVswdszwYPK4bDhs0VDWBfDBlzuxftvpDSo4UiZqXGodyFu2bMHkyZNht9tjym02G+68805s3Lgxbo0jaiq8LiscZ4RyuxZuTBmXA5c9OvdSAPjo691YnXvUqBNmKBM1GrUOZLvdjvz8/EqfO3XqFGS51i9JRABSXFY4zwjl1s1cmDI+Bx6nxSibu3IvVm46Yjw+HcpE1JDVOj2HDBmCl19+Gdu2bYsp37VrF1555RVcfvnlcWscUZMiSkPZbokJ5VZpTkwdnxOzWtfC1fvw1Y+HjMdhRUNhSQg6U5mowar1bU/Hjx/HzTffjCNHjqBdu3ZIT0/HqVOncODAAbRr1w7vvvsuWrRoUVftrRO87Sn5NaW+lySgJBBBIKRCL/fjeaokhDfn5+FUyelVu67o1xZXDWgHqTTBbRYZXrcNshS/W6KaUt8nG/Z9YiTqtqdaBzIQ3Wrx448/xg8//IDCwkJ4PB4MGDAAEyZMgMvlqnVjE42BnPyaWt9LUnRta39IhV5u2FvkC2PmgjycKAoZZUP6tMaoizoYoWy1RNfOjlcoN7W+Tybs+8RoUIHc2DCQk19T7HtJkuAPReALRmJCuSSgYOaCPBw7dXpP8otzWmHcpZ2MELZaZHhdNpjk8w/lptj3yYJ9nxiJCuRa7/YERDeRWLNmDRRFQVmeCyEQCASwfv16vP/+++fyskRnpSgaPv1mN/JP+tEi1YFRgzvCajJVf2ADJYSAy26BBKCkXCh7nFZMHZ+Dfy3Iw+GT0e0aV+fmQ9V0XDukC2RZghLRUegLI9Udn1AmorpX60B+99138de//hWVDaxlWcZll10Wl4YRlfevBXlYsfEwtHIjxbnf7cWQPq1x56jsBLasbgkh4LRbgNLrymWh7LJbMHlcDt5atBUHjvkAAOu2HYeqCVw/rCtMsoSIWhrKLhtMJoYyUbKr9Szr2bNn4/LLL8eaNWswadIk3HjjjdiwYQNeeukl2Gw2XHPNNXXRTmrC/r04D8t/PBQTxgCg68DXG47g34sr3w60sRBCwGmzIMVpiRntOmxm3D0mCx0zTp8O27DzBP67bAdULXqarSyUyx4TUfKqdSAfPHgQt956K7xeL3r16oX169fDbrdj5MiRmDZtGt5+++26aCc1UYqm4Zty99xKUnRLhfLjvW82HYGiaRWObUyEEHDYzPC4rDGhbLeacffoLHRtm2KUbd5TgPeWbkek9NpXRNNR5FMQ0XTEcfI1EcVZrQPZYrEYq3R17NgR+/btQyQSAQBceOGF2Lt3b1wbSE3b4lX7oJcO7s4Mk7KHuh6t19gJATispmgolzsFbbWYcMfILPRon2qUbd0f3TVKUaN/qJSFsqIylImSVa0DOTs7G8uXLwcAdO7cGbquG8tlHj169GyHEtXa8cJg9ZVqUa+hKwvllDNC2WKWcduITOR0Or1N446DRfj3om0IR6KhrJaGcjjCUCZKRrUO5LvvvhtvvfUW/vSnP8HpdOLKK6/E73//e/z973/HP/7xD1x44YV10U5qolqkOuJarzEQArBbTPC6rDCbTv8Im00ybrmqO/p0bWaU7TlSjH8tzEMwrAIoDWV/GOGIxlAmSjK1DuSrrroKb7zxBrp27QoAePzxx9GpUyfMmTMHXbp0waOPPhr3RlLTNWpwR5Qtj37mxP6yh7IcrdeUCAHYLNGRcvlQNskybryiG/pnnl4tb3++D7MW5CEQil5a0jSBIr+CEEOZKKnUKJCnTZuGHTt2AADWrl2LgQMHYvLkyQCAtLQ0zJo1Cxs2bMA777yD1q1b111rqcmxmkwY0uf0Z0qIaBCXz+YhfVo36vuRqxINZRled2woy7KECUO7YFB2S6Ps0Ak/3pyfB1/wdCgXM5SJkkqNAnnVqlU4efIkAOCOO+7Arl276rRRROXdOSobV/RrW2GBC1kGhvZt3PchV0cIwGKKhrKlfChLEv7nss64tFeGUXa0IIAZ87ag2K8AOB3KQYWhTJQMarR05siRIwEA/fv3xyeffIJhw4YhLS2t0rqSJOGpp56KbyvrGJfOTH5mswyXy453F+c2mZW6akvTBAr9YeN2JyB6u9SStQfw9YbDRll6ig2Tx+YgzWMDAJhkCR6nBQ6bpdIFf/i5Txz2fWIk9dKZjz/+OJ5++ml8//33kCQJmzdvhtVqrbSuxD+1qY5YrSZcO6QLfzFVwWSSkOqyxYSyJEkYOagDLGYZX6w7CAAoKA5jxrwtmDwuB81S7NB0geJABAKAs4pQJqK6V+vNJbKysvD++++jT58+ddWmescRcvJj39ecqgsU+8NQIrH99M3Gw1i0Zr/x2OOMLr/ZsnSGuixL8DgscNpjQ5l9nzjs+8RI1Ai51rOsly1bhuzspnvNjijZmWUJXpcNVkvsj/eQC9pg/CWdjMclgQhmzMvF0YLoBhW6LlASjMAfivBMF1EC1DqQ27ZtC4vFUhdtIaI4MckSUt022M4I5cG9MnDd5V2MVc78wWgoHzoe3aBC10V0H+agwlAmqme1DmQiahhkSYLXba8QygOzWuKGK7oaM6uDYRUzF+Rhf34JgLJQVuELKpx9TVSPEh7Iuq7j5ZdfxpAhQ9C3b19MnToVBw4cqLJ+JBLBc889Z9SfOHEi8vIa924/ROdKloBUjw02a+xs9H7dW+DmK7tDLk3ckKJh1sI87DlSDADQhYA/qKIkEKn3NhM1VQkP5Ndffx3vvfcennjiCcyZMwe6rmPKlClQFKXS+o899hg+/vhjPPXUU/joo4+Qnp6OqVOnoqSkpJ5bTtQwSJCQ6rZWCOXeXZrhtqu7G/d3KxEdby3cih0HCwGUhnIogpKAwpnXRPUgoYGsKApmzZqF+++/H8OGDUNWVhZeeOEFHD16FEuWLKlQ/8CBA/joo4/w5JNPYsiQIejatSv++te/wmq1YvPmzQn4CogahrJQtp8Rytmd0nH7yB4wl25UEdF0vPP5NmzddwpAdOERfyiCUyXhem8zUVNTo/uQyysoKMCTTz6Jr776CsFgsMJfzpIkITc3t0avtXXrVvj9fgwePNgoS0lJQU5ODtauXYtx48bF1P/222/h8Xhw+eWXx9T/8ssva/tlEDU5ZaFc5FMQUjRj+dHM9qm4c3QW3lm8DYqqQ9UE3l26HTdd2R29OqdDiOh1ZjUcgdNujl23lIjiptaB/Pjjj2P58uUYO3YsMjIyIMvnPsgu267xzPWvW7ZsWelWjnv27EH79u2xZMkSTJ8+Hfn5+cjJycEf//hHY7OLc2U2V/91mEqXJjSZEn6mv8lh38dPeqodRT7F2AEKiIby5HHZmLVwK8KKBk0XmPPFdtw4vBsGZLcCAIRVDQgBKW4rQ7me8HOfGInq91oH8ooVK/CnP/0JN91003m/eTAY3cP2zFW/bDYbioqKKtT3+XzYt28fXn/9dfz+979HSkoK/vnPf+LWW2/FwoUL0axZswrH1IQsS0hLc9W4fkpK09nqL9mw7+PD6xUoLA4hVLpXMgBc4HXit14nXvrvjwiEVOgC+O+ynbDaLLikTxu4XHYAgC7JSEuxQ5Y5Bbu+8HOfGPXd77UOZIvFgvbt28flze326A+4oijG/wNAOByGw1GxI8xmM3w+H1544QVjRPzCCy9g6NCh+OSTTzBlypRzaoeuCxQXB6qtZzLJSElxoLg4CE3jqjn1iX0ffzKASDiCYDhibG2Z6jRj6vgcvDkvF/6QCgHg7YV5UFQdAzKbQ9N0FEtASUkIXo6U6xw/94kR736v6YCv1oF89dVXY/78+bjkkktq3agzlZ2qPnbsGDp06GCUHzt2DD169KhQPyMjA2azOeb0tN1uR/v27XHw4MHzakttlkfTNJ3L2CUI+z6+XHYzdE1HIKwaodwqzYkp43Mwa0GecdvTnCXbUOIL4dJe0Z9Zn6ZA03SkOCtf057ii5/7xKjvfq91IOfk5ODFF1/EgQMHcMEFF8SMbIHopK5f/vKXNXqtrKwsuN1urFmzxgjk4uJi5ObmYuLEiRXqDxw4EKqq4qeffkLv3r0BAKFQCAcOHMDYsWNr+6UQkQA8LisgSQiEIjGhPHV8DmbOz0NR6XaNC77bB0XRcUX/tsZELyEAr4uhTBQP57S5xFlfUJJqtVDHCy+8gDlz5uCpp55C27Zt8cwzz+DgwYOYP38+ZFlGQUEBPB6PEfx333038vPz8fjjjyM1NRUvv/wy1q1bh/nz5yM9Pb02X4qBm0skP/Z93ZKk6NrW/nKhDACnSkKYOT8PBeVue7qiX1tcNaAdJEmCBMBuNUVPX4PXlOONn/vESNTmErUO5HjTNA3PP/88Pv74Y4RCIQwcOBCPPvoo2rVrh4MHD+LKK6/E3/72N0yYMAFAdGLXs88+i8WLFyMUCqF///7405/+hG7dup1HGxjIyY59X/fKQjk6oev0rwVfUMHMBVuRX3B6nsVlfVpj9EUdjPWuy0JZYijHFT/3idEgA3nXrl0oKSlBenp6zDXghoaBnPzY9/VDklC6ucTpUDaZJEhmE55/dz2OFgSNuhfntMK4SzsZy2/arCakMpTjip/7xGgw2y8CwPz58zFkyBCMGzcOt9xyC0aOHIkhQ4bg008/PZeXI6IkIQTgcVrhcpiNoAWAFJcN067piTbNnEbZ6tx8fLpiN3Q9GtxhRUNhSRg6Z14TnZNaT+r68ssv8dBDD+Hiiy/Gb3/7WzRv3hzHjh3D3Llz8fDDDyM1NRXDhg2rg6YSUX3QdQG3wwoJgC90evEQl8OCyeNy8NairThwLLpd47ptx6FqAtcP6wqTLCEc0VHoCyHVbYsJdCKqXq1PWf/sZz9Du3bt8MILL1R47je/+Q2OHj2K//znP3FrYH3gKevkx76vf5IkwR+KIKio8HgcKCoKQNMEwoqGfy/eir1HT2/o0qtzOm4c3g3m0pWNrBYZXpfN2LiCzg0/94nRYE5Zb9++Hdddd12lz1133XXYunVrbV+SiJKQEAIuuwUepzVmX2Sb1YS7RmehW1uvUbZ5TwHeW7oDkdJfXkpER6EvDE3j+Wuimqp1IKelpVW6rCUAFBYWVlgGk4garmgom+FxWGOWyrRaTLh9ZA/0aJ9qlG3dfwrvfL4NihpdjjOi6ij0M5SJaqrWgTx48GC8+uqrFTZ/OHLkCF577TVceumlcWscESWeKF08JMVljTkFbTHLuG1EJnI6pRllOw8V4d+LohtUAKWh7AtD1XTwkjLR2dX6GvLx48dx/fXXo7CwEP369UPz5s1x4sQJ/Pjjj/B6vZgzZw7atm1bV+2tE7yGnPzY94lT1veFhX6UBCIoCSgxo15N1/HB8l3YtOukUdahlRt3jc6C3RqdN2o2yfC6rbCaZSR25YOGhZ/7xGgw15BbtGiBTz75BLfffjuCwSA2b96MYDCI22+/HZ988kmDC2MiqhkhAIfVFB0pm04Pd02yjBuv6Ib+mS2Msv35Psycn4dAKLoWtqrpKPIpUFSOlImqkvCVupIBR8jJj32fOGf2vSQB4YiGIn/sSFkXAnNX7sH3eceMsox0J+4ekwVP6SYUZpOMFJcVNgtHyjXBz31iJGqEXKP7kF999VX87Gc/Q6tWrfDqq6+etW5tNpcgooZHCMBmMSHVbUORT4Fauj2dLEn4n8s6w2KS8e3m6ByTowUBvDk/F5PG5sDrskZHyv4wvC4rbBYTQ5monBqNkLOysvD++++jT58+cd9cIhlwhJz82PeJU1XfSxKgqHpMKAPRmdlL1h7A1xsOG2XpKTZMHpuDNI8NQHQ5zhSXFXaG8lnxc58YST1CLn9vMe8zJiIgOlK2mmWkuq0o8imIlIayJEkYOagDLGYZX6yL7lNeUBzGjHlbMHlcDpql2KFpAsU+BcJlhcPKUCYCzmFS16uvvor8/PxKnzt48CAef/zx824UETUMQkSvC6e6bbCYY3+dDO/fDqMvOr3pTKFPwYy5W3CsMLpBhaYLlPgVBMOqsWsUUVNW60B+7bXXqgzkjRs34oMPPjjvRhFRw2IySZWG8pAL2mD8JZ2Mx8WBCGbMy8XR0q0cNV2gOBBBIBxhKFOTV6NT1jfffDM2btwIIHp96Kabbqqybu/evePTMiJqUEyyBK/bhiJ/GJHI6etug3tlwGyW8emK3RAA/MFoKE8am422zV3QdYGSQARCAC67Bbzxg5qqGgXyX//6VyxevBhCCLz22mu4/vrrkZGREVNHlmWkpKRgxIgRddJQIkp+ZllCqisaykq5UB6Y1RJmk4QPv9oFIYBgWMXM+bm4a3QWOrTyQNcFfMEIIARcDitDmZqkGgVyt27d8Ktf/QpAdMJG2S1QRERnMslS6S1RYYTLhXK/7i1gNsn477Kd0IVASNEwa2Ee7hyVhc6tU0pDWYUA4HZYONGLmpxa74dcFswnT56EoijGX7K6riMYDGLdunW45ZZb4ttKImpQZEmC121HkS8UE8q9uzSD2STjvaXboekCSkTHWwu3YuLITHRvlwpdCPiDanT9bCdDmZqWWgfy1q1b8eCDD2LXrl2VPi9JEgOZiCBLQKrHhkKfYmw2AQDZHdNw+8gemL1kG1RNIKLpeOfzbbj1qkxkdUyLhnLpkpsMZWpKaj3L+umnn0ZRURH+8Ic/YNCgQbjsssvwv//7vxg6dCgkScLbb79dF+0kogZIgoRUtxU2qymmPLN9Ku4anQVr6axsVRN4d+l2bN5TACB6O5U/FEFxIAJw8jU1EbUO5I0bN+LXv/417rrrLowZMwbBYBC33nor3njjDVx11VV455136qKdRNRAlYWy/YxQ7tLGi7vHZMNmiZZrusCcL7Zjw84TAKKhHAhFUOJXGMrUJNQ6kBVFQadOnQAAnTp1ilm5a8KECdiwYUO82kZEjURZKDuspphs7ZjhweRx2XDYoqGsC+CDL3di3dboBhVCAIGwimK/koBWE9WvWgdymzZtcODAAQDRQPb5fDh4MLo8ntVqRVFRUXxbSNRAqLqO7zYfwfzv9uC7zUeg6olde9inKHj6vR/wh39+i6ff+wE+JdGhJsFbOlIuH8rtWrgxZVwOXPbolBYB4OMVu7F6S3SDirLbpIoYytTI1XpS14gRI/Dcc8/B6XRi5MiR6NKlC1588UVMnToVs2bNQvv27euinURJbfGafViwah+C4ehtOxKA/3yxA2MHd8SoizrWe3v+PH0VjhQEjcfHi8K4//mVaJ3uwJPTBtd7e06LLh4Cv4KQohoTtlo3c2Hq+J6YuSAXJYHohK653+6Fqglc1qc1hABCYRUA4HVZwHPY1BjVeoT8q1/9Cv3798eHH34IAHj44YexdOlSXHvttVi9ejXuu+++uDeSKJktXrMPH329G/6QClmSYJIlyJIEf0jFR1/vxuI1++q1PWeGcXlHCoL48/RV9dqeynhdVtitZpRfLbNlmgNTx0e3aSyzcPU+LP/hEIDoyDkUVlHkU0ofETUutR4h22w2vPzyy4hEon/FDhkyBPPnz8fmzZvRs2dPdOjQoZpXIGo8VF3HglX7oOkCFpN0ej1mCbBIQEQTWLBqH64a2B5mudZ//9aaT1GqDOMyRwqC8CkK3FbrWevVNa/bCskfPR1dNlJu7nVg2jU5mDk/DwUlYQDA0nUHENF0XD2gHSBJCCoahE+JHs+RMjUi5/QbYv369Zg+fbrxuKSkBIsXL0ZxcXHcGkbUEHyfm49gWIVZlipsjiBJEsyyhGBYxfe5lW/IEm+vf7g5rvXqlABSXFY4bbEj5TSPHVOv6YnmXrtR9tWPh7Bo9X5jIaKQoqHQp0BwpEyNSK0D+euvv8add96JlStXGmWSJGHv3r249dZbsW7durg2kCiZFRSHopFQ1UBNip5cLSgO1Ut7ThadfXRc23p1rjSUXXZLTCh7XVZMHZ+DlmkOo2zlT0cw99u90EtDOWyEMlHjUOtAfuWVVzB27Fi89957Rll2djY+++wzjB49Gs8//3xcG0iUzNJT7NEsrioVRDSr01PsVVSIr2ZeR/WValGvPpQtk3lmKHuc0VBu08xplK3JzccnK3ZD18uFckkIOlOZGoFaB/KuXbtw7bXXVrp36bXXXhtzXzJRYzcopxUcNjNUXVTYoUgIAVUXcNjMGJRTP5ux3HtDr7jWqy/lQ1ku97vFZbdg8rgctG/pNsrWbzuOD77aCa0slCM6Cn0hY+RM1FDVOpA9Hg/27NlT6XMHDhyA0+ms9Dmixsgsyxg7uCNMsoSIJqDrArqI/jeiCZhkCWMHd6yXCV0A4LZa0Tr97KPf1umOhE/oqowRyg5zTCg7bGZMGpONThkeo2zjzpOYs2wHVC16r7cS0VHoCxshTdQQ1fq3xNVXX42XXnoJy5cvjyn/5ptv8NJLL+Hqq6+OW+OIGoJRF3XE9UO7wGU3QxcCWmkou+xmXD+0S73fh/zktMFVhnLi70M+OyEAt8MK9xmhbLOacNfoLHRtm2KUbdlTgPeWbkdEZShT4yCJWu4E7vP5MGnSJGzatAkWiwWpqakoLCyEqqq44IIL8Oabb8Ltdlf/QklE03QUFPirrWc2y0hLc+HUKT9UNbGrMDU1DaHvVV3H97n5KCgOIT3FjkE5reptZFwZn6Lg9Q8342RREM28Dtx7Q69zGhknou8lSYI/qMAXUo3rxQAQUXW8t3Q7th0oNMq6tfVi4shMWM3R5TctZhmpLhtMpoZ/S1RD+Nw3RvHu9xYtPNVXwjkEMhDd+/jrr7/G+vXrUVRUBI/HgwEDBmDYsGGQE/gL6FwxkJMf+z5xEtX3kiTBH4rAF4zEhLKq6ZizbAdy954yyjq39uCOkVnGrlIWkwyv2wqzqeH9PiqPn/vEaFCB3NgwkJMf+z5xEtn3VYWypuv4YPkubNp10ijr0MqNO0dlwWGLrndkMclIcVthNcsNdk9lfu4TI1GBXOuVugDg22+/xfLlyxEMBqGfsYC+JEl46qmnzuVliYhiCCGit0MBKCkXyiZZxo1XdIPZJOOH7ccBAPvzfZi1IA93j8mC025BRNNRVLqiV0MOZWo6ah3Is2bNwtNPPw2bzYb09PRKVyciIooXIQScdgsgASWB06EsyxImDO0Ci1nGmtKV0A6d8OPN+dFQ9jitUEtDOcVlhc3CUKbkVutAnj17NsaPH48nn3wS1iS8dYKIGh8hBJy20pFyIGLMpJYlCddc2glmk4Rvf4pu13i0IIA35+di0tjoRhWqpqPIH4bXZYXNYmIoU9Kq9YyHEydO4IYbbmAYE1G9EiK6yIrHZYVJPn0mTpIkjLm4I4b1bWOUHS8MYca8LThVukGFpgkU+RUEFQ08iUfJqtaBnJOTgx07dtRFW4iIzkoIwGE1RUPZFBvKIwZ1wFUD2hllBcVhzJi3BSdL1xHXNIEShjIlsVqfsv7Tn/6EBx54AE6nExdccAEcjooLELRp06aSI4mIzl9ZKMuSFUV+BZp2+hz08P7tYDbJWLxmPwCg0KdgxtwtmDQuBy1THdD0aChDWOCwWSosd0qUSLW+7alnz57QdR1CiConcOXl5cWlcfWFtz0lP/Z94iRr30tSdB3rYr9iLKFZZtXmo5j33V7jscthweSx2chIjy7tK8sSPE4LnEkeysna941dg7nt6YknnuBMaiJKOCEAmyW6AEiRLzaUB/fKgNks49MVuyEA+IMRzJiXi0ljstC2hRu6LlASiECI6AYWyRzK1HTUOpAnTJhQF+0gIqo1IQCrORrKxT4FkXKhPDCrJcwmCR9+tQtCAMGwipkL8nDX6Cx0aOWBrgv4ghFACLgcVoYyJVytA3nt2rXV1hk4cOA5NYaIqLaEOL1UZtEZodyvewuYTTL+u2wndCEQUjTMWpiHO0dloXPrlGgoh1QIRPdf1rkxBSVQrQP59ttvhyRJMX9NnnkKu6FdQyaihs9cRSj37tIMZpOM95Zuh6YLKBEdby3ciokjM9G9XSp0XcAfVAEAboeF9ylTwtQ6kN9+++0KZYFAAOvWrcNnn32GV155JS4NIyKqLbNJRqrbhkJ/2NiWEQCyO6bh9pE9MHvJNqiaQETT8c7n23DrVZnI6pgGXURDuWxPZoYyJUJcN5d4/fXXsXHjRvzf//1fvF6yXnCWdfJj3ydOQ+x7TRfRUI7Etnf34SK8vXgblNKvwyRLuOnK7ujVOR1AdOa2025BSpKEckPs+8YgUbOs47o32YABA/D999/H8yWJiGrNJEtIddlgtcT+iuvSxou7x2TDZolu06jpAnO+2I4NO08AiF6PDoQiKPYrAG8moXoW10D+8ssv4XK54vmSRETnxCRLSHXbYDsjlDtmeDB5XDYctmgo6wL44MudWLf1GIDSUA6rDGWqd7W+hnzHHXdUKNN1HUePHsWhQ4cwderUuDSMiOh8yZIEr9uOIl8I4XKnr9u1cGPKuBzMWpAHf+ks649X7Iaq6bi4Z4Zxm5QQgNfFdfupftR6hCyEqPBPlmVkZmbi8ccfxwMPPFAHzSQiOjeyBHjd9goj5dbNXJg6vic8TotRNvfbvVi56QiA6Eg5pKgo8isAkuCCMjV6tR4h33vvvejbt2+la1gTESUjWQJSPXYUlsSOlFumOTBtfE+8OT+3NHiBhav3IaLquKJ/22goh1VACHjdVvAcNtWlWo+Q77vvPixdurQu2kJEVGckAKkeG2xWU0x5M68d067JQbrHZpQtXXcAS9ceiJ4FBBBUNBT6FAiOlKkO1TqQU1JSYLfb66ItRER1SoKEVLe1QiineeyYek1PNPee/t22/MdDWLRmv7EIUoihTHWs1qes77nnHvz1r3/Fnj17kJWVBafTWaEOl84komRVFsqFPgVhRTPKvS4rpo7PwcwFeTh2KggAWLnpCCKqjvGXdoIsSQgrGgpLwvC67ZB59prirNYLg2RlZcW+QLllM8u2ZGxoS2dyYZDkx75PnMba9wKiQigDgD8Uwb8W5OHwyYBRdmGPFrhuSBfIpSkc3WXKBrmOd75rrH2f7BrM9ouVLZ1JRNTQVDVSdtktmDwuB28t2ooDx3wAgPXbjkPVdNwwrBtMsoRwREehLwyvywYTh8oUJ7UOZEmSkJOTU+kCIMXFxfjmm2/i0jAiorpWVSg7bGZMGpONfy/eir1HSwAAG3eehKoJ3DS8G8wmGUpER5GfoUzxU+tJXXfccQd27dpV6XO5ubl4+OGHz7tRRET1paqJXjarCXeNzkK3tl6jbMueAry3dLuxcYVSOlLWuG0jxUGNRsh/+MMfcORI2c3yAo899hjcbneFenv37kXz5s3j20IiojpW1UjZajHh9pE98N4X27FtfyEAYOv+Qrzz+TZMHJkJq9mEiBoN5VSXDSYTR8p07mo0Qh45cqSxKleZylbr6tu3L/72t7/VWWOJkpmq6/hu8xHM/24Pvtt8BKqe2Ek4ydaeZFcWynarKWb5D4tZxm1XZ6Jnp3SjbOehIvx70VYjvMtCWdV01PE8L2rEaj3L+vbbb8djjz2Grl271lWb6h1nWSe/ZO/7xWv2YcGqfdH1jxFdhMJhM2Ps4I4YdVHHBt2eZO/7+BMo8kcQUtSYLRg1XeCD5TuxaddJo6x9SzfuGp0Fhy16stFskuF1W2E1y3HZvrHp9X1yaDDbL77zzjuNKoyJztfiNfvw0de74Q+pkCUJJlmCLEnwh1R89PVuLF6zr0m3p+GR4HVZ4bCZY0a7JlnCjVd0w4WZLYyyA8d8mLUgD4FQBACgajqKfArCEY6Uqfbiuv0iUVOj6joWrNoHTRewmCTIpeEnyxIsJgmaLrBg1b56O12cbO1pyFJcVjjtlphglWUJ1w3tgotyWhllh0748eb8PJQEomthq1p09nUoojGUqVYYyETn4fvcfATDKsyyFLNIDhC9RdAsSwiGVXyfm98k29OgCSDFaakYypKEay7thEt7ZxhlRwsCMRtUaJpAsV9BUGEoU80lPJB1XcfLL7+MIUOGoG/fvpg6dSoOHDhQo2Pnzp2LHj164ODBg3XcSqLKFRSHoisbV/VLV4pu3FdQHGqS7WnoRGkou84IZUmSMObijhjWt41RdrwwhBnztuBUSRhANJRL/AqCYbXCH0dElUl4IL/++ut477338MQTT2DOnDnQdR1TpkyBoihnPe7QoUN4/PHH66mVRJVLT7FHs6+qCTwimo3pKfWzIUuytacxEALwVBHKIwZ1wFUD2hllBcVhzJi3BSdL/+DRdIHiQASBcIShTNVKaCArioJZs2bh/vvvx7Bhw5CVlYUXXngBR48exZIlS6o8Ttd1PPTQQ+jZs2c9tpaookE5reCwmaHqsbcFAtFbA1VdwGEzY1C5a45NqT2NRflQPnP96uH922H0RR2Mx4U+BdPnbsGxwugGFbouUBKIIBBiKNPZ1XrpzHjaunUr/H4/Bg8ebJSlpKQgJycHa9euxbhx4yo97o033kAkEsGvfvUrrF69Oi5tMZur/9vEZJJj/kv1J1n73gwZ4y/tjA+W74SqCZhM0RGoQPSUpUmWMP7SzrBb6+dHrS7ak6x9nwipHhtMZhn+YCTmD55h/dvCapHx2cq9AICSQARvzsvFlPHZaN0susxwQFEhmyS4HZYa3xLFvk+MRPV7QgP56NGjAIDWrVvHlLds2dJ47kybNm3CrFmz8OGHHyI/Pz4TU2RZQlpaxbW5q5KS4ojL+1LtJWPf3zYmBw6nFR8u2w5/UIWAgAQJbqcFN1yZiQnDujWK9iRj3ydCaqpAoS+MYEiNuTIw+rKuSPE4MHtRHgQAXzCCGXNzcf/N/dAxIwUAIEmAZDYj1W2r1Xuy7xOjvvs9oYEcDEZP6Vit1phym82GoqKiCvUDgQAefPBBPPjgg+jUqVPcAlnXBYqLA9XWM5lkpKQ4UFwchKbxtpH6lOx9f8UFrTGkdyus2ZKPE0UhNPfacVHPVjDLMk6dqn7RmWRuT7L3faJoERW+M0bKvTql4sYru+H9L3dCCMAfUvHCez9g0thsdMyILg5RLEkoLrHA47BWuKxwJvZ9YsS732s64EtoINvt0YkliqIY/w8A4XAYDkfFv0z++te/onPnzrj55pvj3pbarMaiaTpXzUmQZO/7i7LLXZvVkfD7fePZnmTv+/rmsJqgaTr8QRV6uWC9oGtzyJKE/y7bCV0IhBQNb87PxR0js9ClTQo0CBT7FOiqDlcNQhlg3ydKffd7Qi9MlJ2qPnbsWEz5sWPH0KpVxUknH330Eb777jv069cP/fr1w9SpUwEA48aNwxtvvFH3DSYiKhWd6GWFy2GuMNGrd5dmuG1EprEtoxLR8e9FW7HjYCGA6Fk5X1CFL6jwPmUyJHSEnJWVBbfbjTVr1qBDh+gsxeLiYuTm5mLixIkV6p8583rjxo146KGHMH36dGRmZtZLm4mIyui6gMcZveR25kg5u2Mabh/ZA7OXbIOqCUQ0He98vg23XpWJrI5p0IWIXuMvncEdj7WvqWFLaCBbrVZMnDgRzz77LNLT09G2bVs888wzyMjIwIgRI6BpGgoKCuDxeGC329GxY+yi+GUTv9q0aYPU1NQEfAVE1NTpuoDbYYUEwHdGKGe2T8Vdo7Pw9uJtUFQdqiYwe8l23HxlN/Tq0iwayqXrYDOUKeFz6e+//37ccMMNeOSRR3DLLbfAZDJh5syZsFgsOHLkCC677DIsXLgw0c0kIqqSEAIuhxXuSk5fd2njxd1jsmGzmAAAuhCYs2wHNuw8UXos4A9FUByI8PR1E1fr7RcbI26/mPzY94nDvq85SZLgDyrwhVToeuyv1oPHffjXwjwEw9E9lCUA113eBQOyWpYeCzhtZnhcVmOlNfZ9YjSY7ReJiKhyxkjZboYsxw5327VwY8q4HLjs0SuFAsDHK3Zj9ZajpccCgbCKYr9S9Vrk1KgxkImI4uhsody6mQtTx/eEx2kxyuZ+uxcrNx0pPRYIhlUU+c6+lj81TgxkIqI4O31N2VIhlFumOTBtfE94XacXRFq4eh+W/3Co9FggpKgo8isQVe4SQo0RA5mIqA4IIeCyWyoN5WZeO6Zdk4N0z+klNJeuO4Claw9ACBEN5dKRMlfoajoYyEREdeRsoZzmsWPqNT3R3Ht6lcLlPx7CojX7o6GM6OnrguJQzK1U1HgxkImI6tDZQtnrsmLq+By0Sju9VPDKTUcw79u9Rggrqo5CX5inr5sABjIRUR0rC2VPJaHscVoxZXwO2jRzGmWrc/Px6Yrdxq1TYUVDYUkYOjO5UWMgExHVAyEEnFWEsstuweRxOWjf0m2Urdt2HP/9cie00g1BwhEdRb4QQ7kRYyATEdWTs4Wyw2bGpDHZ6JRxehGJDTtO4M3PNkPVTodyoY/XlBsrBjIRUT0yQtlZMZRtVhPuGp2Fbm29RtmP245j9ufbESldMUqJRK8pqxwqNzoMZCKieiaEgNNWeShbLSbcPrIHenRINcry9p3CO59vg6JGl91UIjqKfGFoGkO5MWEgExElwNlC2WKWcdvVmejVOd0o23moCG8t2oqwEg3lSOnsa5X3KTcaDGQiogQ5WyibTTJuHZGJgTmtjLK9R0owa2EegmEVABDRdBT5FEQ0nTtFNQIMZCKiBCoL5ZRKQtkkS7h7XE8MyGphlB045sPMBXkIlO6jXBbKispQbugYyERECSaEgKOKUJZlCdcP64qLyo2UD5/w4835eSgJRDehUEtDORxhKDdkDGQioiRQPpRNZ4ayJOGaSzvh0t4ZRtnRggDenJ+LIn+5UPaHEY5o0ISO7zYfwfzv9uC7zUeg6rzO3BCYE90AIiKKioZy9NdySSAS85wkSRhzcUdYTDK+2nAYAHC8MIQZ87Zg8tgcpHls0DSBz7/fj007T+J4YRAlwQgkAP/5YgfGDu6IURd1rO8viWqBI2QioiQiRHSRkMomekmShBGDOuCqAe2MsoLiMGbM24KTRSF8s/EQPvtmD44VBuF1WZHqtkKWJPhDKj76ejcWr9lX318O1QJHyERESaYslE1mGajkmvDw/u1gMclYtGY/AKDQp2D6vC1QIhp0AQRDEZhlCR6XFbIko9gfRkQTWLBqH64a2B5mmWOxZMTvChFREhICcNrMSHFaK4yUAWDIBW0w/pJOxuOSQAThiA4Z0ZG0LxhBsV+By2GG122DWZYQDKv4Pje//r4IqhUGMhFRkhICcDutSHFZK0z0AoDBvTJw3eVdYgbROqLXogHAH4ygyBeG026G122FAFBQHKqXtlPt8ZQ1EVGSc9rM0FwCJQGlwnKZA7NawmyS8MHyXUaZqgMmWUCWJARC0UVEUpxW6AJIT7HXa9up5jhCJiJKckIADqspOlI2VRwp9+veAjdd2S2mTNNh7ArlD0ZwojiMNI8NF/fKqHA8JQcGMhFRAyAEYLeY4K0ilC/o2hz9M5vHlGk6oGkCqg6EFRW9OqchGFK5eEiSYiATETUQQgA2iwmpbhvMpoq/vm8Y1g0DesSGsg7AapYxclB7XNyzNfxBFSWBCEM5CTGQiYgaECGiAet1W2GpJJQnDO2GSWOyYiaBqZpAmid67VgXAv5QhKGchBjIREQNjBCAxVQayuaKv8a7tUvFlHE5sFlMAKIhPGfZDmzYecI43h+KoJihnFQYyEREDZTZJCPVbas0lDtmeDB5XDYctrJQBj74cifWbT0GIBrKgVD0XuXKFh+h+sdAJiJqwEyyFA1lS8Vf5+1auDFlXA5c9ugdrgLAxyt2Y9WWo9HHAgiE1WgoU8IxkImIGjiTLCHVZYO1klBu3cyFqeN7wuO0GGXzvt2LbzZFN6gQAgiGVWPXKEocBjIRUSNQNlKuLJRbpjkwbXxPpLqtRtmi1fvx5Q8HAURDOaSUhbKocDzVDwYyEVEjIUvRULZVEsrNvHZMHd8T6R6bUfbFuoNYsvYAhBDRUA6rKPIxlBOFgUxE1IjIkgSv215pKKd5bJh6TU80955ePvOrHw9h0er90VAGEFQ0FPoUCIZyvWMgExE1MrKEKkPZ67Ji6vgctEpzGGUrfzqCud/uNZbaDDGUE4KBTETUCMkSkOqpPJQ9TiumjM9Bm2ZOo2xNbj4+WbEbuh4N4bCiobAkDJ2ZXG8YyEREjZQEINVjg81qqvCcy27B5HE5aN/SbZSt33YcH3y1E1pZKEd0FPlCxsiZ6hYDmYioEZMgIdVtrTSUHTYzJo3JRqcMj1G2cedJzPliB1RNBxAN5UJf2AhpqjsMZCKiRq4slO2VhLLNasJdo7PQra3XKNuytwDvLt2OiBoNZSWio9DPUK5rDGQioiZAggRvFaFstZhw+8ge6NE+1Sjbtr8Q73y+DYqqAQAipSPlspEzxR8DmYioiTjbSNlilnHbiEz07JRulO08VIS3Fm1FWCkNZVVHkU9BRNO5KUUdYCATETUyqq7ju81HMP+7Pfhu8xGoevlRbTSUHVZThT0lzCYZN1/VHX26NjPK9h4pwayFeQiGVQBARIuGcjjCUI43c6IbQERE8bN4zT4sWLUPwbAKgehM6/98sQNjB3fEqIs6ltaKnr6GT0FI0WLuNjbJEm68ohssJhnrtx8HABw45sPMBXmYNCYLTrsFqqajyB9GissKu8UETsKOD46QiYgaicVr9uGjr3fDH1IhSxJMsgRZkuAPqfjo691YvGZfudoSvG4b7DZzhZGyLEu4bmgXXJTTyig7fMKPN+fnoSQQ3YRC0wSK/QqCisaRcpwwkImIGgFV17Fg1T5ouoDFJEEuDWNZlmAxSdB0gQWr9p1x+jq6cpfdZq4QqrIk4ZpLO+HS3hlG2dGCAN6cn2vsDKVpAiV+BYGwCompfN4YyEREjcD3ufkIhlWYZalCOEqSBLMsIRhW8X1ufoVjvS4r7NaKoSxJEsZc3BHD+rYxyo4XhjBj3hacKgkDADRdoCQQgT8UYSifJwYyEVEjUFAcil4LrioTpegeTgXFoUqfPlsojxjUAVcNaFfuvcKYMW8LTpa+lq4L+IIR+IMKZJmhfK4YyEREjUB6ij2axVVNsBLRrE5PsVdRoepQBoDh/dth9MUdjMeFPgXT527BscIggLJQVlHsV3hN+RwxkImIGoFBOa3gsJmh6gLijGnPQgiouoDDZsagchO1KuN1W+GoIpSH9GmD8Zd2Mh6XBCKYMS8XRwsCAABdCPhDEZQEIgzlc8BAJiJqBMyyjLGDO8IkS4hoArouoIvofyOagEmWMHZwR5jlan7tCyDFbYWjkoleADC4ZwYmXN7FODPuD0ZD+dBxX/RwAfhDERT7lapPn1OlGMhERI3EqIs64vqhXeCym6ELAa00lF12M64f2qXcfcjVEECKq+pQHpDVEj+7ohvKLhcHwyrenJ+H/fkl0cMFEAirKGEo1woXBiEiakRGXdQRVw1sj+9z81FQHEJ6ih2DclpVPzI+U2koA9HAPXPxj77dm8NskjBn2U7oQiAc0TBrQR7uGJWFLm1SjFAW5V6Hzo6BTETUyJhlGZf0an3+L1QaphJOh2t5vbo0w20mGe8t3Q5NF1BUHf9etBUTR2aie7tUCAEEleiKYV6GcrV4ypqIiKomAI/LCmcVp6+zO6bhjlE9YDFF4ySi6Xh78TZs3XcqergAQmEVRb4wqp4CTgADmYiIqlNNKHdvl4o7R2fBao5GiqYLzF6yHZt3nyw7HEFFQ6FPgWAoV4mBTERE1Ss9fe20WyoN5S5tUnD3mGzYLNGtHXUhMGfZDmzYccKoE2IonxUDmYiIakQIIMVpqTKUO2Z4MHlcNhy2slAGPli+E+u2HjPqhBUNhSVh6MzkChjIRERUY9WFcrsWbkwZlwOXPTpnWAD4eMVurNpy1KgTjugo9IWgc9/GGAxkIiKqlbJQdlURyq2buTB1fE94nBajbN63e/HNpsPGYyWio9AXhsqhsoGBTEREtSYE4DlLKLdMc2Da+J4xtzstWr0fX/5w0HisRHQU+cLQNIYywEAmIqJzVF0oN/PaMe2aHKR7bEbZF+sOYsnaA8Z62xG1dKSs6U1+/WsGMhERnbPqQjnNY8fUa3qiuff0LlNf/XgIi1bvPx3Kmo5CnwJFbdqhzEAmIqLzUj6U5UoS1euyYur4HLRKcxhlK386grnf7jUmdqmajiKfgnCk6YYyA5mIiM5bWSg77eZKQ9njtGLK+By0aeY0ytbk5uOTr3dD18uFsj+MUERrkqHMQCYiorgwRsqOykPZZbdg8rgctG/pNsrWbz+OD77aCa00lDVNoNinIKg0vVBmIBMRUdwIAbgdVYeyw2bGpDHZ6JThMco27jyJOV/sgKrpAKJLb5b4FQTCKqQmlMoJD2Rd1/Hyyy9jyJAh6Nu3L6ZOnYoDBw5UWX/Hjh2YNm0aLrroIgwePBj3338/Dh8+XGV9IiKqX9GRsrXKULZZTbhrdBa6tfUaZVv2FuDdpdsRUcuFciACfyjSZEI54YH8+uuv47333sMTTzyBOXPmQNd1TJkyBYqiVKh76tQp3H333bDb7XjnnXcwY8YMFBQUYMqUKQiHwwloPRERVUbXBdyOqkPZajHh9pE90KNDqlG2bX8h3vl8G5SIZryGLxiBP6g0iVBOaCArioJZs2bh/vvvx7Bhw5CVlYUXXngBR48exZIlSyrU/+KLLxAIBPD0008jMzMTvXr1wjPPPINdu3bhhx9+SMBXQEREVRHi7KFsMcu47epM9OyUbpTtPFSEtxZtRVgpH8oqSgJKo7+mbE7km2/duhV+vx+DBw82ylJSUpCTk4O1a9di3LhxMfUHDx6M119/HXb76fvZZDn6N0VxcfF5tcVsrv5vE1Ppfp9l/6X6w75PHPZ94jSWvk/12GEyK/AHIhXWrzaZTLhtZCbeX7YDG3ZGt2vce7QE/1qUh0ljs+GwRWMqFFFhCkvwOK0VXj/eEtXvCQ3ko0eji423bt06prxly5bGc+W1a9cO7dq1iymbPn067HY7Bg4ceM7tkGUJaWmuGtdPSXFUX4nqBPs+cdj3idMY+j411YkiXxj+UASV7SkxbcIFmL0oD9/9dAQAsD/fh1kLtuL+m/vB7YiuiS0B0GUT0jw2yHLdD5fru98TGsjBYBAAYLXG/sVjs9lQVFRU7fHvvPMOZs+ejUceeQTp6enV1q+KrgsUFweqrWcyyUhJcaC4OAitdDYg1Q/2feKw7xOnsfW9JAF6RIUvGDHuPS5v/KUdoes6Vm/JBwDszy/Bs++sxZTxOcbIWJKAkhILvG4r6mpb5Xj3e00HfAkN5LJTz4qixJyGDofDcDiq/stECIGXXnoJ//znP/GLX/wCt99++3m3RVVr3umapteqPsUP+z5x2PeJ05j63m4xQ9NE1aF8SSeYZAnf/hQ9S3q0IIg3Pt2CyeNyjI0qfJoCVdVjNq6oC/Xd7wm9MFF2qvrYsWMx5ceOHUOrVq0qPSYSieChhx7CG2+8gYcffhgPPPBAXTeTiIjiRAgBl90Cj8NS6WlnSZIw5uKOGNavrVF2oiiEGXO34FRJuPQ1gFBYRZEvjDobJidAQgM5KysLbrcba9asMcqKi4uRm5tb5TXh3//+91i8eDGee+453HXXXfXUUiIiihchBJx2CzzOqkN5xMD2uGrA6TlDBSVhzJi3BSeLQtHXABBUNBT6FIhGEsoJDWSr1YqJEyfi2WefxbJly7B161b85je/QUZGBkaMGAFN03D8+HGEQtFvwMcff4yFCxfiN7/5DQYNGoTjx48b/8rqEBFR8hNCwGmzIKWKUAaA4f3bYfTFHYzHhT4F0+dtwbFTQaMs1IhCOeFz6e+//37ccMMNeOSRR3DLLbfAZDJh5syZsFgsOHLkCC677DIsXLgQADB//nwAwNNPP43LLrss5l9ZHSIiahiEEHCUhrKpilAe0qcNxl/ayXhcEohgxrwtOHLSb5SFFQ2FJWFUckm6QZGEqGwCetOiaToKCvzV1jObZaSluXDqlL/RTLBoKNj3icO+T5ym0veSFD39XOJXjE0mzrRu6zF8smK3MQ6OromdhbYtTm9UYbPI8LptlS5CUhvx7vcWLTzVV0KCZ1kTEREJATisJgDWKkN5QFZLmE0yPvxqJ3QBBMMq3pyfh7vHZKFDq2jghSM6Cn1heF22Kkfc1TkRCOCpWevhD2pwOUz406QL0dzprP7AOOAIGRwhNwTs+8Rh3ydOU+t7Y6QcUKBplUfT5t0nMWfZTmPFL6tZxh2jstClTYpRx2KWkequfSj//NnlUNSK72s1S3jjwStq9Vrl1XSEnPBryERERMDpkbLHaYXJVHmY9urSDLeNyDTCVlF1/HvRVuw4WGjUiag6CkvCxnaONVFVGEffQ+Dnzy6v+RdyjhjIRESUNGoSytkd03DHqB6wlK41HdF0vL14G/L2nTLqRDQdRT4FEU2vdlOKE4FAlWFcRlEFTgSqX9HxfDCQiYgoqdQklLu3S8Wdo7NgLd0YSNMF3l2yHT/tPmnUKQvlcOTsofzUrPU1aldN650rBjIRESWdmoRylzYpmDQ2GzaLCQCgC4E5y3Zgw44TRh1V01HkDyMU0aoMZX9QrVGbalrvXDGQiYgoKcWEchUTtDq08mDyuGw4bCbjmA+W78S6raeXZNY0gWK/gqBSeSi7HDW74aim9c4VA5mIiJKWEcquqkO5XQs3pozLgcseDUwB4OMVu7Fqy+ltfDVNoMSvIBhWIZ2Ryn+adGGN2lLTeueKgUxEREmtJqHcupkLU8f3hMdpMcrmfbsX32w6bDzWdIHiQASBcCQmlJs7nbCazz7zy2qW6vx+ZAYyERElvZqEcss0B6aN74lU9+ltGRet3o8vfzhoPNZ1gZJABP5QbCi/8eAVVYby+d6HXFNcqYuIiBqEmqzo1cxrx9TxPTFzfi4KSrdr/GLdQaiqjqsHtockSdD16H7MEAIuhxVl62O98eAVXKkr0bhSV/Jj3ycO+z5x2PeVq8na10V+BTPn5+JE0emdAC/r3RqjL+5gjIxlSYLLYYbbYUH5JEzUWtY8ZU1ERA1KTU5fe11WTB2fg1ZpDqNs5U9HMPfbvcaym7oQ8AdVlAQi1S4eUh94ypqIiBqcmNPXVax97XFaMWV8Dv61cCsOn4ieBV2Tmw9V03HdkC6QZSkayqFIaX0Ljvt5yjqheMo6+bHvE4d9nzjs++rVZEOKYFjFW4u24sAxn1F2QbdmuGFYN2OELUnAPz/9Cf6QhoLiUMwpbG4uQUREVI2ykbLXVfWKXtG9k7PRqfXpYNy48yTmfLHD2IDi0TdX4+jJIKxmE5p57TGnsLm5BBERUQ0IAdgsJnhdNphNlceazWrCXaOz0K2t1yjbsrcA7y7djuM+PyJadOeoE0VBWEwmNPc6IJ8RytxcgoiIqBrRUJbhdVurDGWr2YTbR/ZAjw6pRtm2/YV4ec5m43FE1XG8MAizSYbbaY05nptLEBER1YAQgNV89lC2mGXcdnUmenZKN8rOvHVK1XSomg75jKnX3FyCiIiohmoSymaTjJuv6o4+XZvV6rW5uQQREVEtlA9lSxWhbJIl3HhFN1yY2aLGr8vNJYiIiGpJCMBiOnsoy7KE64Z2wUU5rSo8p59xGpubSxAREZ0Hc3WhLEm45tJOuKx365jyQl/YCGVuLkFERBQHZpOMVLcNhf4wIpUssCJJEkZf3AFms4yvfjwEIDrRKxxR8fT9F9fbSl0cIRMRUaNnMklIddtgMVcee5IkYcTA9rhqQDujzOu21VsYAxwhExFRE2GSo6Fc6Kt8pAwAw/u3Q8s0B3Yf8WHEwLb12j4GMhERNRk1CeULujXH8EGdYJMFIpH6W0Ocp6yJiKhJKQvlqk5fJ0pytYaIiKgeJGMoJ09LiIiI6pFJluB122CxJEcUJkcriIiIEsAsS0h1JUcoJ74FRERECWQqDWVrgkOZgUxERE2eSZbgTXAoM5CJiIhweqKX1WyCVH31uGMgExERlZIlCakeK6QEJDIDmYiIqByTLCPVY6/392UgExERncFiliFE9fXiiYFMRESUBBjIRERESYCBTERElAQYyEREREmAgUxERJQEGMhERERJgIFMRESUBBjIRERESYCBTERElAQYyEREREmAgUxERJQEGMhERERJgIFMRESUBBjIRERESYCBTERElAQYyERERElAEqK+t2BOPkII6HrNusFkkqFpeh23iCrDvk8c9n3isO8TI579bjLVbOzLQCYiIkoCPGVNRESUBBjIRERESYCBTERElAQYyEREREmAgUxERJQEGMhERERJgIFMRESUBBjIRERESYCBTERElAQYyEREREmAgUxERJQEGMhERERJgIFMRESUBBjINaDrOl5++WUMGTIEffv2xdSpU3HgwIFEN6tRys/PR48ePSr8+/jjjwEAeXl5mDhxIvr27Yvhw4fj7bffTnCLG4f/+7//w+233x5TVl1f8+ciPirr+0ceeaTCz8Dw4cON59n356awsBCPPvooLr/8cvTv3x+33HIL1q1bZzy/atUqTJgwARdccAFGjRqFBQsWxBwfDofxl7/8BYMHD0a/fv3wu9/9DgUFBfFroKBqvfLKK+Kiiy4Sy5cvF3l5eWLSpElixIgRIhwOJ7ppjc5XX30levfuLfLz88WxY8eMf8FgUBQUFIiLLrpIPPzww2Lnzp3iww8/FL179xYffvhhopvdoM2ePVtkZWWJiRMnGmU16Wv+XJy/yvpeCCFuuOEG8fzzz8f8DJw8edJ4nn1/bu6++24xbtw4sXbtWrF7927xl7/8RfTp00fs2rVL7Ny5U/Tu3Vs8//zzYufOneLNN98UOTk54rvvvjOO/+Mf/yiuuuoqsXbtWrFx40Zx7bXXittuuy1u7WMgVyMcDot+/fqJd9991ygrKioSffr0EfPmzUtgyxqn6dOni/Hjx1f63BtvvCEuu+wyEYlEjLLnnntOjBgxor6a16gcPXpU3HPPPaJv375i1KhRMaFQXV/z5+L8nK3vdV0Xffv2FUuWLKn0WPb9udm7d6/IzMwU69atM8p0XRdXXXWVePHFF8X//u//ihtuuCHmmN/+9rdi0qRJQojo9ywrK0t89dVXxvO7d+8WmZmZ4ocffohLG3nKuhpbt26F3+/H4MGDjbKUlBTk5ORg7dq1CWxZ47Rt2zZ07dq10ufWrVuHQYMGwWw2G2UXX3wx9u7dixMnTtRXExuNLVu2wGKxYO7cubjgggtinquur/lzcX7O1vf79+9HIBBAly5dKj2WfX9u0tLSMH36dPTu3dsokyQJkiShuLgY69ati+lTIPqZX79+PYQQWL9+vVFWpnPnzmjVqlXc+p2BXI2jR48CAFq3bh1T3rJlS+M5ip/t27ejoKAAt912Gy655BLccsstWLFiBYDo9yIjIyOmfsuWLQEAR44cqfe2NnTDhw/HK6+8gvbt21d4rrq+5s/F+Tlb32/fvh0A8M4772D48OG46qqr8Pjjj6OkpAQAfyedq5SUFAwdOhRWq9Uo+/zzz7Fv3z4MGTKkys98MBjEqVOnkJ+fj7S0NNhstgp14tXvDORqBINBAIj5JgKAzWZDOBxORJMaLVVVsXv3bhQVFeG+++7D9OnT0bdvX0ybNg2rVq1CKBSq9PsAgN+LOKuur/lzUXe2b98OWZbRsmVLvPHGG/jjH/+IlStX4t5774Wu6+z7OPnhhx/w8MMPY8SIERg2bFiln/myx4qiIBgMVngeiG+/m6uv0rTZ7XYA0W9I2f8D0V9KDocjUc1qlMxmM9asWQOTyWT0da9evbBjxw7MnDkTdrsdiqLEHFP2g+B0Ouu9vY1ZdX3Nn4u684tf/AK33nor0tLSAACZmZlo0aIFbrzxRvz000/s+zj44osv8OCDD6J///549tlnAUSD9czPfNljh8NR6c8EEN9+5wi5GmWnhY4dOxZTfuzYMbRq1SoRTWrUXC5XzC8ZAOjevTvy8/ORkZFR6fcBAL8XcVZdX/Pnou7IsmyEcZnu3bsDiJ6uZt+fn9mzZ+O+++7DFVdcgTfeeMM489O6detK+9TpdMLj8SAjIwOFhYUVQjme/c5ArkZWVhbcbjfWrFljlBUXFyM3NxcDBw5MYMsanx07dqB///4xfQ0AmzdvRrdu3TBw4ECsX78emqYZz61evRqdO3dGs2bN6ru5jVp1fc2fi7rz+9//HnfddVdM2U8//QQA6NatG/v+PLz33nt44okncNttt+H555+POQU9YMAAfP/99zH1V69ejf79+0OWZVx44YXQdd2Y3AUAe/bsQX5+ftz6nYFcDavViokTJ+LZZ5/FsmXLsHXrVvzmN79BRkYGRowYkejmNSpdu3ZFly5d8Pjjj2PdunXYtWsX/va3v2HDhg34xS9+geuvvx4+nw9//vOfsXPnTnz88cd46623cM899yS66Y1OdX3Nn4u6M3LkSKxatQqvvvoq9u/fj6+//hp/+tOfMG7cOHTt2pV9f4727NmDp556CldffTXuuecenDhxAsePH8fx48dRUlKC22+/HZs2bcKzzz6LXbt2YdasWVi8eDGmTJkCIHpmaOzYsXjkkUewZs0abNq0Cb/97W8xaNAg9O3bNy5tlIQQIi6v1Ihpmobnn38eH3/8MUKhEAYOHIhHH30U7dq1S3TTGp0TJ07gueeewzfffIPi4mLk5OTgwQcfxIABAwAAmzZtwpNPPonc3Fy0aNECkyZNwsSJExPc6obvj3/8Iw4dOoR33nnHKKuur/lzER+V9f2iRYswffp07N69Gx6PB+PHj8cDDzxgnF5l39feG2+8gRdeeKHS56677jr8/e9/x4oVK/DMM89g7969aNeuHe677z6MGTPGqBcIBPDUU0/h888/BwBcfvnleOSRRypcYjhXDGQiIqIkwFPWRERESYCBTERElAQYyEREREmAgUxERJQEGMhERERJgIFMRESUBBjIRERESYCBTERxxaUNiM4NA5mI4qK4uBi///3vsW7duri+7po1a9CjR48Ka5wTNTYMZCKKi7y8PHz22WfQdT2ur9uzZ0/897//Rc+ePeP6ukTJhvshE1FSc7vdcVu8nyiZcYRMlACRSATPPvssLr/8cvTp0weTJ0/Gp59+ih49euDgwYMAgHXr1mHixIm44IILMGjQIPzhD39AQUGB8Roff/wxcnJysHHjRtx0003o3bs3rrjiCsycOTPmvcLhMJ5++mkMHToUvXr1wvjx47Fw4cKYOps3b8add96JCy+8EP369cNdd92FDRs2xNQ5W3vWrFmDO+64AwBwxx134Pbbb69xX4RCITz22GO4/PLL0atXL4waNSrmazjzlPXw4cPRo0ePSv+V9V1NvmaiZMMRMlECPProo5g/fz7uu+8+ZGdnY/78+fjf//1f4/m1a9fi7rvvxsUXX4wXX3wRRUVFeOmll3DHHXfgww8/hN1uBwDouo4HHngAd911Fx544AF8+OGHePrpp5GZmYkhQ4ZACIFf/vKX+OGHH3D//feja9euWLp0KX7zm99AURRce+218Pl8mDJlCi6++GK88sorUBQF//znPzF58mR89dVX8Hg81banZ8+eePTRR/H444/j0UcfxUUXXVTjvnjqqaewcuVK/OEPf0Dz5s2xYsUKPP3000hNTcX1119fof6rr74as0n8iRMn8Lvf/Q4DBgxA69ata/Q1EyUlQUT1at++faJHjx5i1qxZMeWTJk0SmZmZ4sCBA+Kmm24S48aNE6qqGs/v3r1bZGdni9mzZwshhPjoo49EZmameP/994064XBY9O7dWzz++ONCCCFWrlwpMjMzxYIFC2Le68EHHxSXXnqpiEQi4scffxSZmZli/fr1MW18+umnxZEjR4QQokbtWb16tcjMzBSrV6+uVX+MHDlSPPLIIzFlr776qli+fHm1rxsOh8XPfvYzceWVV4rCwsIaf81EyYinrInq2Zo1ayCEwKhRo2LKx40bByB6Cnfjxo0YOnQohBBQVRWqqqJ9+/bo2rUrvv3225jj+vXrZ/y/1WpFeno6AoEAAGDVqlWQJAlDhw41XkdVVQwfPhzHjx/Hjh070L17d6Snp+PnP/85Hn30USxduhTNmzfHQw89hIyMDASDwVq1p7YuuugivP/++5g6dSpmz56NAwcO4Je//CWGDRtW7bF//vOfsWPHDrz22mvwer01/pqJkhFPWRPVs7Lrrs2aNYspL3tcVFQEXdcxY8YMzJgxo8LxZZvUlyk7fV1GlmXjXuDCwkIIIdC/f/9K23Ls2DFkZ2fj3XffxT//+U8sWrQI//3vf2G32/E///M/eOSRR1BcXFyr9tTWn//8Z2RkZGDu3Ll44okn8MQTT6Bfv3547LHHkJWVVeVx06dPx9y5c/HSSy+hR48eRnlNv2aiZMNAJqpnrVq1AhC99tmmTRujvCyo3W43JEnCXXfdhbFjx1Y43uFw1Pi9PB4PnE4n3n777Uqf79ixIwCgS5cueOaZZ6BpGjZt2oTPPvsM//nPf9ChQwfcfPPNcWtPZaxWK37xi1/gF7/4BQ4fPozly5fj9ddfx+9+9zssWLCg0mO+/PJLvPDCC7jnnnsqnGmo6ddMlGx4ypqonl144YUwmUxYunRpTPmSJUsAAC6XCzk5Odi9ezd69+5t/OvevTteeeWVWi2QMWjQIAQCAQghYl5r+/bteO2116CqKhYvXoyLL74Yx48fh8lkMkanKSkpOHz4MNxud43aYzKZat0XoVAII0eOxKxZswAAbdq0wW233YaxY8fi8OHDlR6zfft2PPjgg7jsssvwwAMPnNPXTJSMOEImqmft27fH9ddfj+effx6RSARZWVlYunQpli9fDiB6yvm3v/0tpk2bht/97ne45pproGkaZs2ahY0bN+Lee++t8XsNHToUAwcOxL333ot7770XXbt2xaZNm/Dyyy9jyJAhSE9PR//+/aHrOn75y19i2rRpcLlcWLRoEUpKSjBixAgAqFF7PB4PAOCrr76C1+s96+nmMna7HT179sSrr74Ki8WCHj16YM+ePfjkk08wcuTICvULCwvx85//HE6nE/fccw82b94csxBJhw4davQ1EyUjSQguPEtU3xRFwXPPPYd58+bB5/Nh8ODB6NmzJ1577TWsWbMGqampWLVqFV599VVs3rwZFosFPXv2xH333YcBAwYAiN6H/PDDD2PZsmVo166d8drDhw/HoEGD8Pe//x0AEAgE8NJLL2Hx4sU4efIkWrVqhbFjx+KXv/ylcf1306ZNeOmll7B582YEg0F0794dP//5z3H11Vcbr1tde3Rdx0MPPYSlS5eiQ4cOmD9/fo36wufz4cUXX8SyZctw/PhxNGvWDGPGjMGvf/1r2O124x7nslPQZfc7V+Zvf/sbJkyYUKOvmSjZMJCJ6llhYSFWrFiBIUOGIC0tzSj/xz/+gY8//phrNhM1UTxlTVTPHA4HnnzySWRnZ+POO++E0+nEhg0bMHv2bNxzzz2Jbl7c1ORarSzLkGVOZSECOEImSoi8vDy8+OKL2LBhA4LBoDGb+bbbboMkSYlu3nk7ePAgrrzyymrr/epXv8J9991XDy0iSn4MZCKKO0VRsG3btmrrtWzZ0rgNjKipYyATERElAV68ISIiSgIMZCIioiTAQCYiIkoCDGQiIqIkwEAmIiJKAgxkIiKiJMBAJiIiSgL/H+qo1zeQE3LmAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -3277,7 +3519,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 27, "id": "f2e1f5ce", "metadata": {}, "outputs": [ @@ -3287,13 +3529,13 @@ "" ] }, - "execution_count": 41, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -3312,7 +3554,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 28, "id": "324b3c1d", "metadata": {}, "outputs": [ @@ -3346,19 +3588,19 @@ " EDS\n", " \n", " \n", - " 20\n", + " 22\n", " FA\n", " \n", " \n", - " 80\n", + " 88\n", " HALLMARK_HEDGEHOG_SIGNALING\n", " \n", " \n", - " 160\n", + " 176\n", " Yamanaka-TFs\n", " \n", " \n", - " 180\n", + " 198\n", " amigo-example\n", " \n", " \n", @@ -3366,23 +3608,23 @@ " ...\n", " \n", " \n", - " 380\n", + " 418\n", " molecular sequestering\n", " \n", " \n", - " 420\n", + " 462\n", " peroxisome\n", " \n", " \n", - " 440\n", + " 484\n", " progeria\n", " \n", " \n", - " 460\n", + " 506\n", " regulation of presynaptic membrane potential\n", " \n", " \n", - " 480\n", + " 528\n", " sensory ataxia\n", " \n", " \n", @@ -3393,21 +3635,21 @@ "text/plain": [ " source geneset\n", "0 EDS\n", - "20 FA\n", - "80 HALLMARK_HEDGEHOG_SIGNALING\n", - "160 Yamanaka-TFs\n", - "180 amigo-example\n", + "22 FA\n", + "88 HALLMARK_HEDGEHOG_SIGNALING\n", + "176 Yamanaka-TFs\n", + "198 amigo-example\n", ".. ...\n", - "380 molecular sequestering\n", - "420 peroxisome\n", - "440 progeria\n", - "460 regulation of presynaptic membrane potential\n", - "480 sensory ataxia\n", + "418 molecular sequestering\n", + "462 peroxisome\n", + "484 progeria\n", + "506 regulation of presynaptic membrane potential\n", + "528 sensory ataxia\n", "\n", "[14 rows x 1 columns]" ] }, - "execution_count": 42, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -3418,7 +3660,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 29, "id": "2ab6ac9f", "metadata": {}, "outputs": [ @@ -3485,172 +3727,172 @@ " 0.00\n", " 0.00\n", " 0.00\n", - " 0.82\n", - " 4.20e-03\n", - " 20.61\n", - " 20.61\n", - " 0.21\n", - " 7.01e-03\n", - " 9.62e-01\n", - " 5.72e-01\n", + " 0.64\n", + " 3.79e-03\n", + " 20.43\n", + " 20.43\n", + " 0.07\n", + " 2.38e-03\n", + " 9.77e-01\n", + " 6.43e-01\n", " 1.00\n", - " 0.04\n", - " 19.79\n", + " 0.02\n", + " 12.71\n", " \n", " \n", " rank_based\n", " 0.00\n", " 0.00\n", " 0.00\n", - " 1.46\n", - " 8.99e-03\n", + " 1.43\n", + " 8.44e-03\n", " 21.07\n", " 21.07\n", " 0.21\n", - " 7.37e-03\n", - " 9.44e-01\n", + " 8.31e-03\n", + " 9.47e-01\n", " 3.95e-01\n", " 1.00\n", - " 0.06\n", - " 19.61\n", + " 0.05\n", + " 2.11\n", " \n", " \n", " standard\n", " 1.00\n", " 1.00\n", " 1.00\n", - " 118.82\n", + " 117.54\n", " 9.83e-01\n", - " 122.29\n", - " 118.82\n", - " 14.18\n", - " 9.72e-01\n", - " 9.49e-03\n", - " 6.37e-05\n", + " 120.82\n", + " 117.54\n", + " 14.14\n", + " 9.73e-01\n", + " 9.09e-03\n", + " 5.83e-06\n", " 0.05\n", " 1.00\n", " 0.00\n", " \n", " \n", " standard_no_ontology\n", - " 0.68\n", - " 0.61\n", - " 0.61\n", - " 29.29\n", - " 2.51e-01\n", - " 37.71\n", - " 37.71\n", - " 5.46\n", - " 2.24e-01\n", - " 2.80e-01\n", - " 1.05e-03\n", - " 1.00\n", + " 0.64\n", + " 0.54\n", + " 0.54\n", + " 29.11\n", + " 2.53e-01\n", + " 37.89\n", + " 37.89\n", + " 5.11\n", + " 2.09e-01\n", + " 2.75e-01\n", + " 2.89e-05\n", + " 0.97\n", " 0.73\n", - " 8.43\n", + " 0.00\n", " \n", " \n", " gpt-3.5-turbo\n", " narrative_synopsis\n", - " 0.11\n", - " 0.11\n", - " 0.11\n", - " 1.61\n", + " 0.18\n", + " 0.18\n", + " 0.18\n", + " 1.50\n", " 1.92e-02\n", - " 4.82\n", - " 3.36\n", - " 0.39\n", - " 2.27e-02\n", - " 5.26e-01\n", - " 2.33e-01\n", - " 0.81\n", - " 0.48\n", - " 1.75\n", + " 5.25\n", + " 3.00\n", + " 0.43\n", + " 3.82e-02\n", + " 5.04e-01\n", + " 2.62e-01\n", + " 0.70\n", + " 0.50\n", + " 0.18\n", " \n", " \n", " no_synopsis\n", - " 0.29\n", - " 0.29\n", - " 0.29\n", - " 2.14\n", - " 2.99e-02\n", - " 5.14\n", - " 4.25\n", - " 0.61\n", - " 4.52e-02\n", - " 5.19e-01\n", - " 1.79e-01\n", - " 0.89\n", - " 0.48\n", - " 2.11\n", + " 0.18\n", + " 0.14\n", + " 0.18\n", + " 2.25\n", + " 2.97e-02\n", + " 6.07\n", + " 5.18\n", + " 0.54\n", + " 3.63e-02\n", + " 4.74e-01\n", + " 1.17e-01\n", + " 0.69\n", + " 0.53\n", + " 0.57\n", " \n", " \n", " ontological_synopsis\n", - " 0.29\n", - " 0.29\n", - " 0.29\n", - " 2.43\n", - " 3.88e-02\n", - " 5.21\n", - " 3.89\n", + " 0.39\n", + " 0.39\n", + " 0.39\n", + " 2.82\n", + " 4.49e-02\n", + " 5.79\n", + " 4.86\n", + " 0.75\n", + " 5.51e-02\n", + " 3.89e-01\n", + " 7.30e-02\n", + " 0.68\n", " 0.61\n", - " 4.27e-02\n", - " 3.52e-01\n", - " 8.08e-02\n", - " 0.63\n", - " 0.65\n", - " 1.46\n", + " 0.07\n", " \n", " \n", " text-davinci-003\n", " narrative_synopsis\n", - " 0.11\n", - " 0.11\n", - " 0.11\n", - " 0.96\n", - " 7.29e-03\n", - " 9.21\n", - " 3.36\n", - " 0.32\n", - " 1.81e-02\n", - " 6.69e-01\n", - " 4.41e-01\n", - " 0.84\n", - " 0.33\n", - " 2.39\n", - " \n", - " \n", - " no_synopsis\n", " 0.07\n", " 0.07\n", " 0.07\n", - " 1.04\n", - " 8.85e-03\n", - " 7.18\n", - " 3.32\n", + " 0.89\n", + " 8.48e-03\n", + " 8.54\n", + " 2.68\n", + " 0.32\n", + " 1.75e-02\n", + " 6.52e-01\n", + " 3.76e-01\n", + " 0.83\n", + " 0.35\n", " 0.21\n", - " 1.08e-02\n", - " 6.30e-01\n", - " 3.22e-01\n", - " 0.84\n", - " 0.37\n", - " 2.25\n", " \n", " \n", - " ontological_synopsis\n", + " no_synopsis\n", " 0.14\n", - " 0.11\n", " 0.14\n", - " 2.89\n", - " 2.59e-02\n", - " 11.79\n", - " 8.29\n", - " 0.50\n", - " 2.46e-02\n", - " 6.88e-01\n", - " 2.87e-01\n", + " 0.14\n", + " 0.96\n", + " 7.69e-03\n", + " 7.96\n", + " 3.96\n", + " 0.32\n", + " 1.44e-02\n", + " 7.33e-01\n", + " 4.64e-01\n", + " 0.93\n", + " 0.27\n", + " 0.96\n", + " \n", + " \n", + " ontological_synopsis\n", + " 0.25\n", + " 0.14\n", + " 0.25\n", + " 2.50\n", + " 2.40e-02\n", + " 10.57\n", + " 7.43\n", + " 0.54\n", + " 2.82e-02\n", + " 6.43e-01\n", + " 2.16e-01\n", " 1.00\n", - " 0.31\n", - " 5.39\n", + " 0.36\n", + " 0.68\n", " \n", " \n", "\n", @@ -3662,81 +3904,81 @@ "N/A random 0.00 0.00 0.00 \n", " rank_based 0.00 0.00 0.00 \n", " standard 1.00 1.00 1.00 \n", - " standard_no_ontology 0.68 0.61 0.61 \n", - "gpt-3.5-turbo narrative_synopsis 0.11 0.11 0.11 \n", - " no_synopsis 0.29 0.29 0.29 \n", - " ontological_synopsis 0.29 0.29 0.29 \n", - "text-davinci-003 narrative_synopsis 0.11 0.11 0.11 \n", - " no_synopsis 0.07 0.07 0.07 \n", - " ontological_synopsis 0.14 0.11 0.14 \n", + " standard_no_ontology 0.64 0.54 0.54 \n", + "gpt-3.5-turbo narrative_synopsis 0.18 0.18 0.18 \n", + " no_synopsis 0.18 0.14 0.18 \n", + " ontological_synopsis 0.39 0.39 0.39 \n", + "text-davinci-003 narrative_synopsis 0.07 0.07 0.07 \n", + " no_synopsis 0.14 0.14 0.14 \n", + " ontological_synopsis 0.25 0.14 0.25 \n", "\n", " size overlap similarity num terms \\\n", "model method \n", - "N/A random 0.82 4.20e-03 20.61 \n", - " rank_based 1.46 8.99e-03 21.07 \n", - " standard 118.82 9.83e-01 122.29 \n", - " standard_no_ontology 29.29 2.51e-01 37.71 \n", - "gpt-3.5-turbo narrative_synopsis 1.61 1.92e-02 4.82 \n", - " no_synopsis 2.14 2.99e-02 5.14 \n", - " ontological_synopsis 2.43 3.88e-02 5.21 \n", - "text-davinci-003 narrative_synopsis 0.96 7.29e-03 9.21 \n", - " no_synopsis 1.04 8.85e-03 7.18 \n", - " ontological_synopsis 2.89 2.59e-02 11.79 \n", + "N/A random 0.64 3.79e-03 20.43 \n", + " rank_based 1.43 8.44e-03 21.07 \n", + " standard 117.54 9.83e-01 120.82 \n", + " standard_no_ontology 29.11 2.53e-01 37.89 \n", + "gpt-3.5-turbo narrative_synopsis 1.50 1.92e-02 5.25 \n", + " no_synopsis 2.25 2.97e-02 6.07 \n", + " ontological_synopsis 2.82 4.49e-02 5.79 \n", + "text-davinci-003 narrative_synopsis 0.89 8.48e-03 8.54 \n", + " no_synopsis 0.96 7.69e-03 7.96 \n", + " ontological_synopsis 2.50 2.40e-02 10.57 \n", "\n", " num GO terms nr size overlap \\\n", "model method \n", - "N/A random 20.61 0.21 \n", + "N/A random 20.43 0.07 \n", " rank_based 21.07 0.21 \n", - " standard 118.82 14.18 \n", - " standard_no_ontology 37.71 5.46 \n", - "gpt-3.5-turbo narrative_synopsis 3.36 0.39 \n", - " no_synopsis 4.25 0.61 \n", - " ontological_synopsis 3.89 0.61 \n", - "text-davinci-003 narrative_synopsis 3.36 0.32 \n", - " no_synopsis 3.32 0.21 \n", - " ontological_synopsis 8.29 0.50 \n", + " standard 117.54 14.14 \n", + " standard_no_ontology 37.89 5.11 \n", + "gpt-3.5-turbo narrative_synopsis 3.00 0.43 \n", + " no_synopsis 5.18 0.54 \n", + " ontological_synopsis 4.86 0.75 \n", + "text-davinci-003 narrative_synopsis 2.68 0.32 \n", + " no_synopsis 3.96 0.32 \n", + " ontological_synopsis 7.43 0.54 \n", "\n", " nr similarity mean p value \\\n", "model method \n", - "N/A random 7.01e-03 9.62e-01 \n", - " rank_based 7.37e-03 9.44e-01 \n", - " standard 9.72e-01 9.49e-03 \n", - " standard_no_ontology 2.24e-01 2.80e-01 \n", - "gpt-3.5-turbo narrative_synopsis 2.27e-02 5.26e-01 \n", - " no_synopsis 4.52e-02 5.19e-01 \n", - " ontological_synopsis 4.27e-02 3.52e-01 \n", - "text-davinci-003 narrative_synopsis 1.81e-02 6.69e-01 \n", - " no_synopsis 1.08e-02 6.30e-01 \n", - " ontological_synopsis 2.46e-02 6.88e-01 \n", + "N/A random 2.38e-03 9.77e-01 \n", + " rank_based 8.31e-03 9.47e-01 \n", + " standard 9.73e-01 9.09e-03 \n", + " standard_no_ontology 2.09e-01 2.75e-01 \n", + "gpt-3.5-turbo narrative_synopsis 3.82e-02 5.04e-01 \n", + " no_synopsis 3.63e-02 4.74e-01 \n", + " ontological_synopsis 5.51e-02 3.89e-01 \n", + "text-davinci-003 narrative_synopsis 1.75e-02 6.52e-01 \n", + " no_synopsis 1.44e-02 7.33e-01 \n", + " ontological_synopsis 2.82e-02 6.43e-01 \n", "\n", " min p value max p value \\\n", "model method \n", - "N/A random 5.72e-01 1.00 \n", + "N/A random 6.43e-01 1.00 \n", " rank_based 3.95e-01 1.00 \n", - " standard 6.37e-05 0.05 \n", - " standard_no_ontology 1.05e-03 1.00 \n", - "gpt-3.5-turbo narrative_synopsis 2.33e-01 0.81 \n", - " no_synopsis 1.79e-01 0.89 \n", - " ontological_synopsis 8.08e-02 0.63 \n", - "text-davinci-003 narrative_synopsis 4.41e-01 0.84 \n", - " no_synopsis 3.22e-01 0.84 \n", - " ontological_synopsis 2.87e-01 1.00 \n", + " standard 5.83e-06 0.05 \n", + " standard_no_ontology 2.89e-05 0.97 \n", + "gpt-3.5-turbo narrative_synopsis 2.62e-01 0.70 \n", + " no_synopsis 1.17e-01 0.69 \n", + " ontological_synopsis 7.30e-02 0.68 \n", + "text-davinci-003 narrative_synopsis 3.76e-01 0.83 \n", + " no_synopsis 4.64e-01 0.93 \n", + " ontological_synopsis 2.16e-01 1.00 \n", "\n", " proportion significant num novel \n", "model method \n", - "N/A random 0.04 19.79 \n", - " rank_based 0.06 19.61 \n", + "N/A random 0.02 12.71 \n", + " rank_based 0.05 2.11 \n", " standard 1.00 0.00 \n", - " standard_no_ontology 0.73 8.43 \n", - "gpt-3.5-turbo narrative_synopsis 0.48 1.75 \n", - " no_synopsis 0.48 2.11 \n", - " ontological_synopsis 0.65 1.46 \n", - "text-davinci-003 narrative_synopsis 0.33 2.39 \n", - " no_synopsis 0.37 2.25 \n", - " ontological_synopsis 0.31 5.39 " + " standard_no_ontology 0.73 0.00 \n", + "gpt-3.5-turbo narrative_synopsis 0.50 0.18 \n", + " no_synopsis 0.53 0.57 \n", + " ontological_synopsis 0.61 0.07 \n", + "text-davinci-003 narrative_synopsis 0.35 0.21 \n", + " no_synopsis 0.27 0.96 \n", + " ontological_synopsis 0.36 0.68 " ] }, - "execution_count": 43, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -3749,7 +3991,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 30, "id": "7ec9701c", "metadata": {}, "outputs": [ @@ -3757,23 +3999,29 @@ "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", @@ -3786,185 +4034,179 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  has top hitin top 5in top 10size overlapsimilaritynum termsnr size overlapnr similarityhas top hitin top 5in top 10size overlapsimilaritynum termsnum GO termsnr size overlapnr similaritymean p valuemin p valuemax p valueproportion significantnum novel
model         
N/Arandom0.0200.0200.0200.8600.00519.9400.2000.005
rank_based0.0000.0000.0001.4800.00920.5600.2600.009
standard_no_ontology0.2000.2000.20010.3800.06113.9401.8000.040
gpt-3.5-turbogpt-3.5-turbo.narrative_synopsis0.0000.0000.0000.8330.0094.3330.0000.000
gpt-3.5-turbo.no_synopsis0.0000.0000.0001.8330.0145.3330.1670.011
gpt-3.5-turbo.ontological_synopsis0.1670.1670.1672.6670.0215.6670.0000.000
narrative_synopsis0.2050.2050.2051.5450.0315.1820.5910.054
no_synopsis0.2500.2500.2501.8640.0245.4770.4770.031
ontological_synopsis0.3410.3410.3412.0910.0385.1140.7270.070
text-davinci-003narrative_synopsis0.1360.0910.1361.3180.0118.4320.4770.026
no_synopsis0.0910.0680.0911.2500.0117.3180.2730.014
ontological_synopsis0.3180.2050.2952.2500.02410.0680.9090.044
text-davinci-003.narrative_synopsis0.0000.0000.0001.0000.0208.6670.0000.000
text-davinci-003.no_synopsis0.0000.0000.0000.8330.0047.3330.0000.000
text-davinci-003.ontological_synopsis0.0000.0000.0003.5000.02410.0000.3330.022N/Arandom0.0000.0000.0000.6430.00420.42920.4290.0710.0020.9770.6431.0000.02312.714
rank_based0.0000.0000.0001.4290.00821.07121.0710.2140.0080.9470.3951.0000.0542.107
standard_no_ontology0.6430.5360.53629.1070.25337.89337.8935.1070.2090.2750.0000.9650.7300.000
gpt-3.5-turbonarrative_synopsis0.1790.1790.1791.5000.0195.2503.0000.4290.0380.5040.2620.6970.4980.179
no_synopsis0.1790.1430.1792.2500.0306.0715.1790.5360.0360.4740.1170.6940.5280.571
ontological_synopsis0.3930.3930.3932.8210.0455.7864.8570.7500.0550.3890.0730.6810.6130.071
text-davinci-003narrative_synopsis0.0710.0710.0710.8930.0088.5362.6790.3210.0170.6520.3760.8330.3490.214
no_synopsis0.1430.1430.1430.9640.0087.9643.9640.3210.0140.7330.4640.9290.2670.964
ontological_synopsis0.2500.1430.2502.5000.02410.5717.4290.5360.0280.6430.2161.0000.3570.679
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 23, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -3975,27 +4217,27 @@ }, { "cell_type": "code", - "execution_count": 44, - "id": "add329a2", + "execution_count": 31, + "id": "ec20a512", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -4008,57 +4250,57 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
  proportion significantnum GO termshas top hitnum novelproportion significantnum GO termshas top hitnum novel
model
gpt-3.5-turbonarrative_synopsis0.4763.3570.1071.750gpt-3.5-turbonarrative_synopsis0.4983.0000.1790.179
no_synopsis0.4824.2500.2862.107no_synopsis0.5285.1790.1790.571
ontological_synopsis0.6523.8930.2861.464ontological_synopsis0.6134.8570.3930.071
text-davinci-003narrative_synopsis0.3323.3570.1072.393text-davinci-003narrative_synopsis0.3492.6790.0710.214
no_synopsis0.3723.3210.0712.250no_synopsis0.2673.9640.1430.964
ontological_synopsis0.3138.2860.1435.393ontological_synopsis0.3577.4290.2500.679
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 44, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -4077,15 +4319,19 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 51, "id": "f97cd9a4", "metadata": {}, "outputs": [], "source": [ "\n", - "def terms_summary(df):\n", + "def terms_summary(df, max_rows=9999):\n", " term_dict = {}\n", + " n = 0\n", " for _, row in df.iterrows():\n", + " n += 1\n", + " if n > max_rows:\n", + " break\n", " model = row['model'] \n", " if \"turbo\" in model:\n", " model = \"turbo\"\n", @@ -4093,7 +4339,9 @@ " model = \"dav\"\n", " else:\n", " model = \"\"\n", - " method = row['method'].replace('_', ' ')\n", + " method = str(row['method']).replace('_', ' ')\n", + " if method in [\"closure\", \"rank_based\", \"random\"]:\n", + " continue\n", " mm = f\"{model} {method}\"\n", " if method == \"standard\":\n", " nr_term_ids = list(filter_redundant(row[TERM_IDS]))\n", @@ -4122,7 +4370,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 52, "id": "7d7f78b2", "metadata": {}, "outputs": [ @@ -4147,6 +4395,8 @@ " \n", " \n", " \n", + " model\n", + " method\n", " has top hit\n", " in top 5\n", " in top 10\n", @@ -4165,7 +4415,9 @@ " \n", " \n", " \n", - " 426\n", + " 468\n", + " N/A\n", + " standard\n", " True\n", " True\n", " True\n", @@ -4179,10 +4431,12 @@ " 1.98e-16\n", " 4.11e-02\n", " 1.00\n", - " 62\n", + " 0\n", " \n", " \n", - " 427\n", + " 469\n", + " N/A\n", + " standard_no_ontology\n", " True\n", " False\n", " False\n", @@ -4196,27 +4450,50 @@ " 1.98e-16\n", " 1.00e+00\n", " 0.71\n", - " 21\n", + " 0\n", " \n", " \n", - " 421\n", - " False\n", + " 472\n", + " N/A\n", + " None\n", + " True\n", " False\n", " False\n", - " 1\n", - " 0.02\n", - " 2\n", - " 1\n", + " 62\n", + " 0.19\n", + " 419\n", + " 391\n", + " 6\n", + " 0.12\n", + " 8.02e-01\n", + " 1.98e-16\n", + " 1.00e+00\n", + " 0.20\n", + " 0\n", + " \n", + " \n", + " 466\n", + " text-davinci-003\n", + " ontological_synopsis\n", + " True\n", + " True\n", + " True\n", + " 3\n", + " 0.04\n", + " 10\n", + " 9\n", " 0\n", " 0.00\n", - " 2.94e-13\n", - " 2.94e-13\n", - " 2.94e-13\n", - " 1.00\n", - " 1\n", + " 6.70e-01\n", + " 1.98e-16\n", + " 1.00e+00\n", + " 0.33\n", + " 3\n", " \n", " \n", - " 422\n", + " 462\n", + " gpt-3.5-turbo\n", + " no_synopsis\n", " False\n", " False\n", " False\n", @@ -4230,61 +4507,69 @@ " 6.88e-15\n", " 6.88e-15\n", " 1.00\n", - " 1\n", + " 0\n", " \n", " \n", - " 423\n", + " 463\n", + " gpt-3.5-turbo\n", + " ontological_synopsis\n", " False\n", " False\n", " False\n", " 1\n", " 0.02\n", - " 6\n", - " 3\n", + " 5\n", + " 1\n", " 0\n", " 0.00\n", - " 6.67e-01\n", - " 6.89e-16\n", - " 1.00e+00\n", - " 0.33\n", - " 3\n", + " 6.88e-15\n", + " 6.88e-15\n", + " 6.88e-15\n", + " 1.00\n", + " 0\n", " \n", " \n", - " 420\n", + " 464\n", + " gpt-3.5-turbo\n", + " narrative_synopsis\n", " False\n", " False\n", " False\n", " 0\n", " 0.00\n", - " 3\n", - " 1\n", + " 4\n", + " 0\n", " 0\n", " 0.00\n", - " 1.00e+00\n", - " 1.00e+00\n", - " 1.00e+00\n", - " 0.00\n", - " 1\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 0\n", " \n", " \n", - " 424\n", + " 465\n", + " text-davinci-003\n", + " no_synopsis\n", " False\n", " False\n", " False\n", " 0\n", " 0.00\n", - " 10\n", - " 10\n", + " 9\n", + " 2\n", " 0\n", " 0.00\n", " 1.00e+00\n", " 1.00e+00\n", " 1.00e+00\n", " 0.00\n", - " 9\n", + " 0\n", " \n", " \n", - " 425\n", + " 467\n", + " text-davinci-003\n", + " narrative_synopsis\n", " False\n", " False\n", " False\n", @@ -4301,7 +4586,9 @@ " 0\n", " \n", " \n", - " 428\n", + " 470\n", + " N/A\n", + " random\n", " False\n", " False\n", " False\n", @@ -4315,10 +4602,12 @@ " 1.00e+00\n", " 1.00e+00\n", " 0.00\n", - " 6\n", + " 8\n", " \n", " \n", - " 429\n", + " 471\n", + " N/A\n", + " rank_based\n", " False\n", " False\n", " False\n", @@ -4332,63 +4621,79 @@ " 1.00e+00\n", " 1.00e+00\n", " 0.00\n", - " 0\n", + " 1\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " has top hit in top 5 in top 10 size overlap similarity num terms \\\n", - "426 True True True 62 1.00 62 \n", - "427 True False False 15 0.22 21 \n", - "421 False False False 1 0.02 2 \n", - "422 False False False 1 0.02 3 \n", - "423 False False False 1 0.02 6 \n", - "420 False False False 0 0.00 3 \n", - "424 False False False 0 0.00 10 \n", - "425 False False False 0 0.00 4 \n", - "428 False False False 0 0.00 8 \n", - "429 False False False 0 0.00 8 \n", + " model method has top hit in top 5 in top 10 \\\n", + "468 N/A standard True True True \n", + "469 N/A standard_no_ontology True False False \n", + "472 N/A None True False False \n", + "466 text-davinci-003 ontological_synopsis True True True \n", + "462 gpt-3.5-turbo no_synopsis False False False \n", + "463 gpt-3.5-turbo ontological_synopsis False False False \n", + "464 gpt-3.5-turbo narrative_synopsis False False False \n", + "465 text-davinci-003 no_synopsis False False False \n", + "467 text-davinci-003 narrative_synopsis False False False \n", + "470 N/A random False False False \n", + "471 N/A rank_based False False False \n", + "\n", + " size overlap similarity num terms num GO terms nr size overlap \\\n", + "468 62 1.00 62 62 10 \n", + "469 15 0.22 21 21 7 \n", + "472 62 0.19 419 391 6 \n", + "466 3 0.04 10 9 0 \n", + "462 1 0.02 3 1 0 \n", + "463 1 0.02 5 1 0 \n", + "464 0 0.00 4 0 0 \n", + "465 0 0.00 9 2 0 \n", + "467 0 0.00 4 0 0 \n", + "470 0 0.00 8 8 0 \n", + "471 0 0.00 8 8 0 \n", "\n", - " num GO terms nr size overlap nr similarity mean p value min p value \\\n", - "426 62 10 1.00 5.64e-03 1.98e-16 \n", - "427 21 7 0.41 2.89e-01 1.98e-16 \n", - "421 1 0 0.00 2.94e-13 2.94e-13 \n", - "422 1 0 0.00 6.88e-15 6.88e-15 \n", - "423 3 0 0.00 6.67e-01 6.89e-16 \n", - "420 1 0 0.00 1.00e+00 1.00e+00 \n", - "424 10 0 0.00 1.00e+00 1.00e+00 \n", - "425 0 0 0.00 NaN NaN \n", - "428 8 0 0.00 1.00e+00 1.00e+00 \n", - "429 8 0 0.00 1.00e+00 1.00e+00 \n", + " nr similarity mean p value min p value max p value \\\n", + "468 1.00 5.64e-03 1.98e-16 4.11e-02 \n", + "469 0.41 2.89e-01 1.98e-16 1.00e+00 \n", + "472 0.12 8.02e-01 1.98e-16 1.00e+00 \n", + "466 0.00 6.70e-01 1.98e-16 1.00e+00 \n", + "462 0.00 6.88e-15 6.88e-15 6.88e-15 \n", + "463 0.00 6.88e-15 6.88e-15 6.88e-15 \n", + "464 0.00 NaN NaN NaN \n", + "465 0.00 1.00e+00 1.00e+00 1.00e+00 \n", + "467 0.00 NaN NaN NaN \n", + "470 0.00 1.00e+00 1.00e+00 1.00e+00 \n", + "471 0.00 1.00e+00 1.00e+00 1.00e+00 \n", "\n", - " max p value proportion significant num novel \n", - "426 4.11e-02 1.00 62 \n", - "427 1.00e+00 0.71 21 \n", - "421 2.94e-13 1.00 1 \n", - "422 6.88e-15 1.00 1 \n", - "423 1.00e+00 0.33 3 \n", - "420 1.00e+00 0.00 1 \n", - "424 1.00e+00 0.00 9 \n", - "425 NaN NaN 0 \n", - "428 1.00e+00 0.00 6 \n", - "429 1.00e+00 0.00 0 " + " proportion significant num novel \n", + "468 1.00 0 \n", + "469 0.71 0 \n", + "472 0.20 0 \n", + "466 0.33 3 \n", + "462 1.00 0 \n", + "463 1.00 0 \n", + "464 NaN 0 \n", + "465 0.00 0 \n", + "467 NaN 0 \n", + "470 0.00 8 \n", + "471 0.00 1 " ] }, - "execution_count": 86, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "peroxisome = df.query(f\"{GENESET} == 'peroxisome-0'\").sort_values(\"similarity\", ascending=False)\n", - "peroxisome[eval_summary_cols]" + "peroxisome[[MODEL, METHOD] + eval_summary_cols]" ] }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 53, "id": "149cb60b", "metadata": {}, "outputs": [ @@ -4418,13 +4723,13 @@ " redundant\n", " standard\n", " standard no ontology\n", - " dav no synopsis\n", - " turbo narrative synopsis\n", - " turbo ontological synopsis\n", - " turbo no synopsis\n", + " None\n", " dav ontological synopsis\n", - " random\n", + " turbo no synopsis\n", + " turbo ontological synopsis\n", " rank based\n", + " dav no synopsis\n", + " turbo narrative synopsis\n", " dav narrative synopsis\n", " \n", " \n", @@ -4436,8 +4741,8 @@ " False\n", " 0.0\n", " 10.0\n", - " NaN\n", - " NaN\n", + " 218.0\n", + " 2.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4452,7 +4757,7 @@ " True\n", " 1.0\n", " NaN\n", - " NaN\n", + " 236.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4468,7 +4773,7 @@ " True\n", " 2.0\n", " NaN\n", - " NaN\n", + " 235.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4484,7 +4789,7 @@ " False\n", " 3.0\n", " NaN\n", - " NaN\n", + " 277.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4500,7 +4805,7 @@ " True\n", " 4.0\n", " NaN\n", - " 2.0\n", + " 226.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4516,10 +4821,10 @@ " True\n", " 5.0\n", " 2.0\n", + " 222.0\n", " NaN\n", " 0.0\n", - " NaN\n", - " NaN\n", + " 0.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4532,14 +4837,14 @@ " True\n", " 6.0\n", " 0.0\n", - " NaN\n", - " NaN\n", + " 278.0\n", " 1.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", + " NaN\n", " \n", " \n", " 7\n", @@ -4548,7 +4853,7 @@ " False\n", " 7.0\n", " 1.0\n", - " NaN\n", + " 190.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4564,7 +4869,7 @@ " True\n", " 8.0\n", " NaN\n", - " NaN\n", + " 193.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4580,7 +4885,7 @@ " True\n", " 9.0\n", " 3.0\n", - " NaN\n", + " 284.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4596,7 +4901,7 @@ " True\n", " 10.0\n", " NaN\n", - " NaN\n", + " 279.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4612,7 +4917,7 @@ " True\n", " 11.0\n", " 4.0\n", - " NaN\n", + " 188.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4628,7 +4933,7 @@ " True\n", " 12.0\n", " NaN\n", - " NaN\n", + " 189.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4644,7 +4949,7 @@ " True\n", " 13.0\n", " NaN\n", - " NaN\n", + " 280.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4660,7 +4965,7 @@ " True\n", " 14.0\n", " NaN\n", - " NaN\n", + " 260.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4676,7 +4981,7 @@ " True\n", " 15.0\n", " NaN\n", - " NaN\n", + " 217.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4692,7 +4997,7 @@ " True\n", " 16.0\n", " NaN\n", - " NaN\n", + " 283.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4708,7 +5013,7 @@ " True\n", " 17.0\n", " NaN\n", - " NaN\n", + " 234.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4724,7 +5029,7 @@ " True\n", " 18.0\n", " NaN\n", - " NaN\n", + " 285.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4740,7 +5045,7 @@ " True\n", " 19.0\n", " NaN\n", - " NaN\n", + " 220.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4756,7 +5061,7 @@ " True\n", " 20.0\n", " NaN\n", - " NaN\n", + " 225.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4772,7 +5077,7 @@ " True\n", " 21.0\n", " NaN\n", - " NaN\n", + " 223.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4788,7 +5093,7 @@ " True\n", " 22.0\n", " NaN\n", - " NaN\n", + " 227.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4804,7 +5109,7 @@ " True\n", " 23.0\n", " NaN\n", - " NaN\n", + " 228.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4820,7 +5125,7 @@ " False\n", " 24.0\n", " 11.0\n", - " NaN\n", + " 265.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4836,7 +5141,7 @@ " True\n", " 25.0\n", " NaN\n", - " NaN\n", + " 232.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4852,7 +5157,7 @@ " False\n", " 26.0\n", " 5.0\n", - " NaN\n", + " 237.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4868,7 +5173,7 @@ " True\n", " 27.0\n", " NaN\n", - " NaN\n", + " 230.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4884,7 +5189,7 @@ " True\n", " 28.0\n", " 7.0\n", - " NaN\n", + " 372.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4900,7 +5205,7 @@ " False\n", " 29.0\n", " NaN\n", - " NaN\n", + " 84.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4916,7 +5221,7 @@ " False\n", " 30.0\n", " 6.0\n", - " NaN\n", + " 367.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4932,7 +5237,7 @@ " True\n", " 31.0\n", " NaN\n", - " NaN\n", + " 212.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4948,7 +5253,7 @@ " True\n", " 32.0\n", " NaN\n", - " NaN\n", + " 216.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4964,7 +5269,7 @@ " True\n", " 33.0\n", " 9.0\n", - " NaN\n", + " 375.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4980,7 +5285,7 @@ " False\n", " 34.0\n", " 8.0\n", - " NaN\n", + " 90.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -4996,7 +5301,7 @@ " True\n", " 35.0\n", " NaN\n", - " NaN\n", + " 241.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5012,7 +5317,7 @@ " True\n", " 36.0\n", " NaN\n", - " NaN\n", + " 243.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5028,7 +5333,7 @@ " True\n", " 37.0\n", " NaN\n", - " NaN\n", + " 194.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5044,7 +5349,7 @@ " True\n", " 38.0\n", " NaN\n", - " NaN\n", + " 238.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5060,7 +5365,7 @@ " True\n", " 39.0\n", " NaN\n", - " NaN\n", + " 231.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5076,7 +5381,7 @@ " True\n", " 40.0\n", " NaN\n", - " NaN\n", + " 213.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5092,7 +5397,7 @@ " True\n", " 41.0\n", " NaN\n", - " NaN\n", + " 94.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5108,7 +5413,7 @@ " True\n", " 42.0\n", " NaN\n", - " NaN\n", + " 247.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5124,7 +5429,7 @@ " True\n", " 43.0\n", " NaN\n", - " NaN\n", + " 215.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5140,7 +5445,7 @@ " True\n", " 44.0\n", " NaN\n", - " NaN\n", + " 259.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5156,7 +5461,7 @@ " False\n", " 45.0\n", " 12.0\n", - " NaN\n", + " 411.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5172,7 +5477,7 @@ " True\n", " 46.0\n", " NaN\n", - " NaN\n", + " 221.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5188,7 +5493,7 @@ " True\n", " 47.0\n", " NaN\n", - " NaN\n", + " 410.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5204,7 +5509,7 @@ " True\n", " 48.0\n", " NaN\n", - " NaN\n", + " 242.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5220,7 +5525,7 @@ " True\n", " 49.0\n", " NaN\n", - " NaN\n", + " 244.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5236,7 +5541,7 @@ " True\n", " 50.0\n", " NaN\n", - " NaN\n", + " 246.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5252,7 +5557,7 @@ " True\n", " 51.0\n", " NaN\n", - " NaN\n", + " 240.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5268,7 +5573,7 @@ " False\n", " 52.0\n", " 13.0\n", - " NaN\n", + " 69.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5284,7 +5589,7 @@ " True\n", " 53.0\n", " NaN\n", - " NaN\n", + " 192.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5300,7 +5605,7 @@ " True\n", " 54.0\n", " NaN\n", - " NaN\n", + " 219.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5316,7 +5621,7 @@ " True\n", " 55.0\n", " NaN\n", - " NaN\n", + " 239.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5332,7 +5637,7 @@ " True\n", " 56.0\n", " NaN\n", - " NaN\n", + " 229.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5348,8 +5653,8 @@ " True\n", " 57.0\n", " NaN\n", - " NaN\n", - " NaN\n", + " 72.0\n", + " 8.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5364,7 +5669,7 @@ " True\n", " 58.0\n", " NaN\n", - " NaN\n", + " 86.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5380,7 +5685,7 @@ " True\n", " 59.0\n", " 15.0\n", - " NaN\n", + " 195.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5396,7 +5701,7 @@ " True\n", " 60.0\n", " NaN\n", - " NaN\n", + " 196.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5412,7 +5717,7 @@ " True\n", " 61.0\n", " NaN\n", - " NaN\n", + " 245.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5428,7 +5733,7 @@ " False\n", " NaN\n", " 14.0\n", - " NaN\n", + " 345.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5444,7 +5749,7 @@ " False\n", " NaN\n", " 16.0\n", - " NaN\n", + " 146.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5455,12 +5760,12 @@ " \n", " \n", " 64\n", - " GO:0005052\n", - " peroxisome matrix targeting signal-1 binding\n", + " GO:0033328\n", + " peroxisome membrane targeting sequence binding\n", " False\n", " NaN\n", " 17.0\n", - " NaN\n", + " 339.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5471,12 +5776,12 @@ " \n", " \n", " 65\n", - " GO:0060152\n", - " microtubule-based peroxisome localization\n", + " GO:0032994\n", + " protein-lipid complex\n", " False\n", " NaN\n", " 18.0\n", - " NaN\n", + " 338.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5487,12 +5792,12 @@ " \n", " \n", " 66\n", - " GO:0032994\n", - " protein-lipid complex\n", + " GO:0005052\n", + " peroxisome matrix targeting signal-1 binding\n", " False\n", " NaN\n", " 19.0\n", - " NaN\n", + " 160.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5503,12 +5808,12 @@ " \n", " \n", " 67\n", - " GO:0033328\n", - " peroxisome membrane targeting sequence binding\n", + " GO:0060152\n", + " microtubule-based peroxisome localization\n", " False\n", " NaN\n", " 20.0\n", - " NaN\n", + " 393.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5519,14 +5824,14 @@ " \n", " \n", " 68\n", - " peroxisomal organization\n", - " None\n", + " GO:0005053\n", + " peroxisome matrix targeting signal-2 binding\n", " False\n", " NaN\n", " NaN\n", + " 161.0\n", " NaN\n", " NaN\n", - " 0.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5535,29 +5840,29 @@ " \n", " \n", " 69\n", - " peroxisome biogenesis\n", - " None\n", + " GO:0005829\n", + " cytosol\n", " False\n", " NaN\n", " NaN\n", - " 0.0\n", - " 1.0\n", + " 200.0\n", " NaN\n", " NaN\n", " NaN\n", + " 0.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 70\n", - " protein import into peroxisome\n", - " None\n", + " GO:0032991\n", + " protein-containing complex\n", " False\n", " NaN\n", " NaN\n", + " 289.0\n", " NaN\n", - " 2.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5567,12 +5872,12 @@ " \n", " \n", " 71\n", - " peroxisome assembly\n", - " None\n", + " GO:0050680\n", + " negative regulation of epithelial cell proliferation\n", " False\n", " NaN\n", " NaN\n", - " 1.0\n", + " 385.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5583,13 +5888,13 @@ " \n", " \n", " 72\n", - " GO:0006457\n", - " protein folding\n", + " GO:0031648\n", + " protein destabilization\n", " False\n", " NaN\n", " NaN\n", - " 3.0\n", - " NaN\n", + " 336.0\n", + " 7.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5599,12 +5904,12 @@ " \n", " \n", " 73\n", - " MESH:D054875\n", - " None\n", + " GO:0019899\n", + " enzyme binding\n", " False\n", " NaN\n", " NaN\n", - " 4.0\n", + " 307.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5615,12 +5920,12 @@ " \n", " \n", " 74\n", - " GO:0006412\n", - " translation\n", + " GO:0008611\n", + " ether lipid biosynthetic process\n", " False\n", " NaN\n", " NaN\n", - " 5.0\n", + " 268.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5631,15 +5936,15 @@ " \n", " \n", " 75\n", - " perioxisomal organization\n", - " None\n", + " GO:0048468\n", + " cell development\n", " False\n", " NaN\n", " NaN\n", + " 383.0\n", " NaN\n", " NaN\n", " NaN\n", - " 0.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5647,31 +5952,31 @@ " \n", " \n", " 76\n", - " GO:0016559\n", - " peroxisome fission\n", + " GO:0070062\n", + " extracellular exosome\n", " False\n", " NaN\n", " NaN\n", + " 407.0\n", " NaN\n", " NaN\n", " NaN\n", - " 1.0\n", - " NaN\n", + " 4.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 77\n", - " peroxisome morphogenesis\n", - " None\n", + " GO:0044183\n", + " protein folding chaperone\n", " False\n", " NaN\n", " NaN\n", + " 368.0\n", " NaN\n", " NaN\n", " NaN\n", - " 2.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5679,96 +5984,96 @@ " \n", " \n", " 78\n", - " GO:0005515\n", - " protein binding\n", + " GO:0040018\n", + " positive regulation of multicellular organism growth\n", " False\n", " NaN\n", " NaN\n", + " 355.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 0.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 79\n", - " GO:0008289\n", - " lipid binding\n", + " GO:0140597\n", + " protein carrier chaperone\n", " False\n", " NaN\n", " NaN\n", + " 413.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 1.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 80\n", - " GO:0046872\n", - " metal ion binding\n", + " GO:0030674\n", + " protein-macromolecule adaptor activity\n", " False\n", " NaN\n", " NaN\n", + " 321.0\n", + " NaN\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 2.0\n", - " 7.0\n", - " 7.0\n", " NaN\n", " \n", " \n", " 81\n", - " GO:0019899\n", - " enzyme binding\n", + " GO:0016561\n", + " protein import into peroxisome matrix, translocation\n", " False\n", " NaN\n", " NaN\n", + " 282.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 3.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 82\n", - " GO:0036211\n", - " protein modification process\n", + " GO:0005654\n", + " nucleoplasm\n", " False\n", " NaN\n", " NaN\n", + " 185.0\n", " NaN\n", " NaN\n", " NaN\n", - " NaN\n", - " 4.0\n", + " 2.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 83\n", - " GO:0031648\n", - " protein destabilization\n", + " GO:0005737\n", + " cytoplasm\n", " False\n", " NaN\n", " NaN\n", + " 186.0\n", " NaN\n", " NaN\n", " NaN\n", - " NaN\n", - " 5.0\n", + " 3.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5780,70 +6085,71 @@ " False\n", " NaN\n", " NaN\n", + " 386.0\n", + " 3.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 6.0\n", - " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 85\n", - " GO:0017038\n", - " protein import\n", + " GO:0008289\n", + " lipid binding\n", " False\n", " NaN\n", " NaN\n", + " 258.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 7.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 86\n", - " GO:0051262\n", - " protein tetramerization\n", + " GO:0021795\n", + " cerebral cortex cell migration\n", " False\n", " NaN\n", " NaN\n", + " 315.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 8.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 87\n", - " GO:0065003\n", - " protein-containing complex assembly\n", + " GO:0031333\n", + " negative regulation of protein-containing complex assembly\n", " False\n", " NaN\n", " NaN\n", + " 325.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 9.0\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", " 88\n", - " peroxisomal biogenesis\n", - " None\n", + " GO:0001958\n", + " endochondral ossification\n", " False\n", " NaN\n", " NaN\n", + " 158.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5851,15 +6157,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.0\n", " \n", " \n", " 89\n", - " peroxisomal protein import\n", - " None\n", + " GO:0016560\n", + " protein import into peroxisome matrix, docking\n", " False\n", " NaN\n", " NaN\n", + " 281.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5867,15 +6173,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 1.0\n", " \n", " \n", " 90\n", - " peroxisomal targeting signal\n", - " None\n", + " GO:0005524\n", + " ATP binding\n", " False\n", " NaN\n", " NaN\n", + " 163.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5883,15 +6189,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 2.0\n", " \n", " \n", " 91\n", - " aaa atpase proteins\n", - " None\n", + " GO:0061630\n", + " ubiquitin protein ligase activity\n", " False\n", " NaN\n", " NaN\n", + " 399.0\n", " NaN\n", " NaN\n", " NaN\n", @@ -5899,1292 +6205,415 @@ " NaN\n", " NaN\n", " NaN\n", - " 3.0\n", " \n", " \n", " 92\n", - " GO:0005886\n", - " plasma membrane\n", + " GO:0016887\n", + " ATP hydrolysis activity\n", " False\n", " NaN\n", " NaN\n", + " 304.0\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 0.0\n", - " 0.0\n", " NaN\n", " \n", " \n", " 93\n", - " GO:0045087\n", - " innate immune response\n", + " GO:0007006\n", + " mitochondrial membrane organization\n", " False\n", " NaN\n", " NaN\n", + " 250.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 1.0\n", " NaN\n", " NaN\n", " \n", " \n", " 94\n", - " GO:0090210\n", - " regulation of establishment of blood-brain barrier\n", + " GO:0008270\n", + " zinc ion binding\n", " False\n", " NaN\n", " NaN\n", + " 254.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 2.0\n", " NaN\n", " NaN\n", " \n", " \n", " 95\n", - " GO:0098664\n", - " G protein-coupled serotonin receptor signaling pathway\n", + " GO:0097733\n", + " photoreceptor cell cilium\n", " False\n", " NaN\n", " NaN\n", + " 128.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 3.0\n", " NaN\n", " NaN\n", " \n", " \n", " 96\n", - " GO:0008017\n", - " microtubule binding\n", + " GO:0007029\n", + " endoplasmic reticulum organization\n", " False\n", " NaN\n", " NaN\n", + " 253.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 4.0\n", " NaN\n", " NaN\n", " \n", " \n", " 97\n", - " GO:0033885\n", - " 10-hydroxy-9-(phosphonooxy)octadecanoate phosphatase activity\n", + " GO:0005783\n", + " endoplasmic reticulum\n", " False\n", " NaN\n", " NaN\n", + " 198.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 5.0\n", " NaN\n", " NaN\n", " \n", " \n", " 98\n", - " GO:0071902\n", - " positive regulation of protein serine/threonine kinase activity\n", + " GO:1990928\n", + " response to amino acid starvation\n", " False\n", " NaN\n", " NaN\n", + " 418.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 6.0\n", " NaN\n", " NaN\n", " \n", " \n", " 99\n", - " GO:0005654\n", - " nucleoplasm\n", + " GO:0042803\n", + " protein homodimerization activity\n", " False\n", " NaN\n", " NaN\n", + " 365.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 1.0\n", " NaN\n", " \n", " \n", " 100\n", - " GO:0005829\n", - " cytosol\n", + " GO:0016593\n", + " Cdc73/Paf1 complex\n", " False\n", " NaN\n", " NaN\n", + " 297.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 2.0\n", " NaN\n", " \n", " \n", " 101\n", - " GO:0005737\n", - " cytoplasm\n", + " GO:0048147\n", + " negative regulation of fibroblast proliferation\n", " False\n", " NaN\n", " NaN\n", + " 382.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 3.0\n", " NaN\n", " \n", " \n", " 102\n", - " GO:0016020\n", - " membrane\n", + " GO:0044877\n", + " protein-containing complex binding\n", " False\n", " NaN\n", " NaN\n", + " 373.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 4.0\n", " NaN\n", " \n", " \n", " 103\n", - " GO:0070062\n", - " extracellular exosome\n", + " GO:0008320\n", + " protein transmembrane transporter activity\n", " False\n", " NaN\n", " NaN\n", + " 262.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 5.0\n", " NaN\n", " \n", " \n", " 104\n", - " GO:0005634\n", - " nucleus\n", + " GO:0005739\n", + " mitochondrion\n", " False\n", " NaN\n", " NaN\n", + " 187.0\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", - " 6.0\n", " NaN\n", " \n", - " \n", - "\n", - "
" - ], - "text/plain": [ - " id \\\n", - "0 GO:0006625 \n", - "1 GO:0072663 \n", - "2 GO:0072662 \n", - "3 GO:0015919 \n", - "4 GO:0043574 \n", - "5 GO:0007031 \n", - "6 GO:0016558 \n", - "7 GO:0005778 \n", - "8 GO:0031903 \n", - "9 GO:0016562 \n", - "10 GO:0044743 \n", - "11 GO:0005777 \n", - "12 GO:0042579 \n", - "13 GO:0065002 \n", - "14 GO:0071806 \n", - "15 GO:0006605 \n", - "16 GO:0001881 \n", - "17 GO:0072594 \n", - "18 GO:0043112 \n", - "19 GO:0006886 \n", - "20 GO:0033365 \n", - "21 GO:0015031 \n", - "22 GO:0045184 \n", - "23 GO:0046907 \n", - "24 GO:0140318 \n", - "25 GO:0071705 \n", - "26 GO:0006635 \n", - "27 GO:0051649 \n", - "28 GO:0044721 \n", - "29 GO:0000268 \n", - "30 GO:0043335 \n", - "31 GO:0008104 \n", - "32 GO:0070727 \n", - "33 GO:0045046 \n", - "34 GO:0000425 \n", - "35 GO:0019395 \n", - "36 GO:0034440 \n", - "37 GO:0098588 \n", - "38 GO:0009062 \n", - "39 GO:0071702 \n", - "40 GO:0033036 \n", - "41 GO:0030242 \n", - "42 GO:0072329 \n", - "43 GO:0051641 \n", - "44 GO:0055085 \n", - "45 GO:0140036 \n", - "46 GO:0006996 \n", - "47 GO:0140035 \n", - "48 GO:0030258 \n", - "49 GO:0044242 \n", - "50 GO:0046395 \n", - "51 GO:0016054 \n", - "52 GO:0000038 \n", - "53 GO:0031090 \n", - "54 GO:0006810 \n", - "55 GO:0016042 \n", - "56 GO:0051234 \n", - "57 GO:0006631 \n", - "58 GO:0005048 \n", - "59 GO:0005782 \n", - "60 GO:0031907 \n", - "61 GO:0044282 \n", - "62 GO:0034614 \n", - "63 GO:0001764 \n", - "64 GO:0005052 \n", - "65 GO:0060152 \n", - "66 GO:0032994 \n", - "67 GO:0033328 \n", - "68 peroxisomal organization \n", - "69 peroxisome biogenesis \n", - "70 protein import into peroxisome \n", - "71 peroxisome assembly \n", - "72 GO:0006457 \n", - "73 MESH:D054875 \n", - "74 GO:0006412 \n", - "75 perioxisomal organization \n", - "76 GO:0016559 \n", - "77 peroxisome morphogenesis \n", - "78 GO:0005515 \n", - "79 GO:0008289 \n", - "80 GO:0046872 \n", - "81 GO:0019899 \n", - "82 GO:0036211 \n", - "83 GO:0031648 \n", - "84 GO:0050821 \n", - "85 GO:0017038 \n", - "86 GO:0051262 \n", - "87 GO:0065003 \n", - "88 peroxisomal biogenesis \n", - "89 peroxisomal protein import \n", - "90 peroxisomal targeting signal \n", - "91 aaa atpase proteins \n", - "92 GO:0005886 \n", - "93 GO:0045087 \n", - "94 GO:0090210 \n", - "95 GO:0098664 \n", - "96 GO:0008017 \n", - "97 GO:0033885 \n", - "98 GO:0071902 \n", - "99 GO:0005654 \n", - "100 GO:0005829 \n", - "101 GO:0005737 \n", - "102 GO:0016020 \n", - "103 GO:0070062 \n", - "104 GO:0005634 \n", - "\n", - " label \\\n", - "0 protein targeting to peroxisome \n", - "1 establishment of protein localization to peroxisome \n", - "2 protein localization to peroxisome \n", - "3 peroxisomal membrane transport \n", - "4 peroxisomal transport \n", - "5 peroxisome organization \n", - "6 protein import into peroxisome matrix \n", - "7 peroxisomal membrane \n", - "8 microbody membrane \n", - "9 protein import into peroxisome matrix, receptor recycling \n", - "10 protein transmembrane import into intracellular organelle \n", - "11 peroxisome \n", - "12 microbody \n", - "13 intracellular protein transmembrane transport \n", - "14 protein transmembrane transport \n", - "15 protein targeting \n", - "16 receptor recycling \n", - "17 establishment of protein localization to organelle \n", - "18 receptor metabolic process \n", - "19 intracellular protein transport \n", - "20 protein localization to organelle \n", - "21 protein transport \n", - "22 establishment of protein localization \n", - "23 intracellular transport \n", - "24 protein transporter activity \n", - "25 nitrogen compound transport \n", - "26 fatty acid beta-oxidation \n", - "27 establishment of localization in cell \n", - "28 protein import into peroxisome matrix, substrate release \n", - "29 peroxisome targeting sequence binding \n", - "30 protein unfolding \n", - "31 protein localization \n", - "32 cellular macromolecule localization \n", - "33 protein import into peroxisome membrane \n", - "34 pexophagy \n", - "35 fatty acid oxidation \n", - "36 lipid oxidation \n", - "37 bounding membrane of organelle \n", - "38 fatty acid catabolic process \n", - "39 organic substance transport \n", - "40 macromolecule localization \n", - "41 autophagy of peroxisome \n", - "42 monocarboxylic acid catabolic process \n", - "43 cellular localization \n", - "44 transmembrane transport \n", - "45 ubiquitin-dependent protein binding \n", - "46 organelle organization \n", - "47 ubiquitination-like modification-dependent protein binding \n", - "48 lipid modification \n", - "49 cellular lipid catabolic process \n", - "50 carboxylic acid catabolic process \n", - "51 organic acid catabolic process \n", - "52 very long-chain fatty acid metabolic process \n", - "53 organelle membrane \n", - "54 transport \n", - "55 lipid catabolic process \n", - "56 establishment of localization \n", - "57 fatty acid metabolic process \n", - "58 signal sequence binding \n", - "59 peroxisomal matrix \n", - "60 microbody lumen \n", - "61 small molecule catabolic process \n", - "62 cellular response to reactive oxygen species \n", - "63 neuron migration \n", - "64 peroxisome matrix targeting signal-1 binding \n", - "65 microtubule-based peroxisome localization \n", - "66 protein-lipid complex \n", - "67 peroxisome membrane targeting sequence binding \n", - "68 None \n", - "69 None \n", - "70 None \n", - "71 None \n", - "72 protein folding \n", - "73 None \n", - "74 translation \n", - "75 None \n", - "76 peroxisome fission \n", - "77 None \n", - "78 protein binding \n", - "79 lipid binding \n", - "80 metal ion binding \n", - "81 enzyme binding \n", - "82 protein modification process \n", - "83 protein destabilization \n", - "84 protein stabilization \n", - "85 protein import \n", - "86 protein tetramerization \n", - "87 protein-containing complex assembly \n", - "88 None \n", - "89 None \n", - "90 None \n", - "91 None \n", - "92 plasma membrane \n", - "93 innate immune response \n", - "94 regulation of establishment of blood-brain barrier \n", - "95 G protein-coupled serotonin receptor signaling pathway \n", - "96 microtubule binding \n", - "97 10-hydroxy-9-(phosphonooxy)octadecanoate phosphatase activity \n", - "98 positive regulation of protein serine/threonine kinase activity \n", - "99 nucleoplasm \n", - "100 cytosol \n", - "101 cytoplasm \n", - "102 membrane \n", - "103 extracellular exosome \n", - "104 nucleus \n", - "\n", - " redundant standard standard no ontology dav no synopsis \\\n", - "0 False 0.0 10.0 NaN \n", - "1 True 1.0 NaN NaN \n", - "2 True 2.0 NaN NaN \n", - "3 False 3.0 NaN NaN \n", - "4 True 4.0 NaN 2.0 \n", - "5 True 5.0 2.0 NaN \n", - "6 True 6.0 0.0 NaN \n", - "7 False 7.0 1.0 NaN \n", - "8 True 8.0 NaN NaN \n", - "9 True 9.0 3.0 NaN \n", - "10 True 10.0 NaN NaN \n", - "11 True 11.0 4.0 NaN \n", - "12 True 12.0 NaN NaN \n", - "13 True 13.0 NaN NaN \n", - "14 True 14.0 NaN NaN \n", - "15 True 15.0 NaN NaN \n", - "16 True 16.0 NaN NaN \n", - "17 True 17.0 NaN NaN \n", - "18 True 18.0 NaN NaN \n", - "19 True 19.0 NaN NaN \n", - "20 True 20.0 NaN NaN \n", - "21 True 21.0 NaN NaN \n", - "22 True 22.0 NaN NaN \n", - "23 True 23.0 NaN NaN \n", - "24 False 24.0 11.0 NaN \n", - "25 True 25.0 NaN NaN \n", - "26 False 26.0 5.0 NaN \n", - "27 True 27.0 NaN NaN \n", - "28 True 28.0 7.0 NaN \n", - "29 False 29.0 NaN NaN \n", - "30 False 30.0 6.0 NaN \n", - "31 True 31.0 NaN NaN \n", - "32 True 32.0 NaN NaN \n", - "33 True 33.0 9.0 NaN \n", - "34 False 34.0 8.0 NaN \n", - "35 True 35.0 NaN NaN \n", - "36 True 36.0 NaN NaN \n", - "37 True 37.0 NaN NaN \n", - "38 True 38.0 NaN NaN \n", - "39 True 39.0 NaN NaN \n", - "40 True 40.0 NaN NaN \n", - "41 True 41.0 NaN NaN \n", - "42 True 42.0 NaN NaN \n", - "43 True 43.0 NaN NaN \n", - "44 True 44.0 NaN NaN \n", - "45 False 45.0 12.0 NaN \n", - "46 True 46.0 NaN NaN \n", - "47 True 47.0 NaN NaN \n", - "48 True 48.0 NaN NaN \n", - "49 True 49.0 NaN NaN \n", - "50 True 50.0 NaN NaN \n", - "51 True 51.0 NaN NaN \n", - "52 False 52.0 13.0 NaN \n", - "53 True 53.0 NaN NaN \n", - "54 True 54.0 NaN NaN \n", - "55 True 55.0 NaN NaN \n", - "56 True 56.0 NaN NaN \n", - "57 True 57.0 NaN NaN \n", - "58 True 58.0 NaN NaN \n", - "59 True 59.0 15.0 NaN \n", - "60 True 60.0 NaN NaN \n", - "61 True 61.0 NaN NaN \n", - "62 False NaN 14.0 NaN \n", - "63 False NaN 16.0 NaN \n", - "64 False NaN 17.0 NaN \n", - "65 False NaN 18.0 NaN \n", - "66 False NaN 19.0 NaN \n", - "67 False NaN 20.0 NaN \n", - "68 False NaN NaN NaN \n", - "69 False NaN NaN 0.0 \n", - "70 False NaN NaN NaN \n", - "71 False NaN NaN 1.0 \n", - "72 False NaN NaN 3.0 \n", - "73 False NaN NaN 4.0 \n", - "74 False NaN NaN 5.0 \n", - "75 False NaN NaN NaN \n", - "76 False NaN NaN NaN \n", - "77 False NaN NaN NaN \n", - "78 False NaN NaN NaN \n", - "79 False NaN NaN NaN \n", - "80 False NaN NaN NaN \n", - "81 False NaN NaN NaN \n", - "82 False NaN NaN NaN \n", - "83 False NaN NaN NaN \n", - "84 False NaN NaN NaN \n", - "85 False NaN NaN NaN \n", - "86 False NaN NaN NaN \n", - "87 False NaN NaN NaN \n", - "88 False NaN NaN NaN \n", - "89 False NaN NaN NaN \n", - "90 False NaN NaN NaN \n", - "91 False NaN NaN NaN \n", - "92 False NaN NaN NaN \n", - "93 False NaN NaN NaN \n", - "94 False NaN NaN NaN \n", - "95 False NaN NaN NaN \n", - "96 False NaN NaN NaN \n", - "97 False NaN NaN NaN \n", - "98 False NaN NaN NaN \n", - "99 False NaN NaN NaN \n", - "100 False NaN NaN NaN \n", - "101 False NaN NaN NaN \n", - "102 False NaN NaN NaN \n", - "103 False NaN NaN NaN \n", - "104 False NaN NaN NaN \n", - "\n", - " turbo narrative synopsis turbo ontological synopsis turbo no synopsis \\\n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", - "5 0.0 NaN NaN \n", - "6 NaN 1.0 NaN \n", - "7 NaN NaN NaN \n", - "8 NaN NaN NaN \n", - "9 NaN NaN NaN \n", - "10 NaN NaN NaN \n", - "11 NaN NaN NaN \n", - "12 NaN NaN NaN \n", - "13 NaN NaN NaN \n", - "14 NaN NaN NaN \n", - "15 NaN NaN NaN \n", - "16 NaN NaN NaN \n", - "17 NaN NaN NaN \n", - "18 NaN NaN NaN \n", - "19 NaN NaN NaN \n", - "20 NaN NaN NaN \n", - "21 NaN NaN NaN \n", - "22 NaN NaN NaN \n", - "23 NaN NaN NaN \n", - "24 NaN NaN NaN \n", - "25 NaN NaN NaN \n", - "26 NaN NaN NaN \n", - "27 NaN NaN NaN \n", - "28 NaN NaN NaN \n", - "29 NaN NaN NaN \n", - "30 NaN NaN NaN \n", - "31 NaN NaN NaN \n", - "32 NaN NaN NaN \n", - "33 NaN NaN NaN \n", - "34 NaN NaN NaN \n", - "35 NaN NaN NaN \n", - "36 NaN NaN NaN \n", - "37 NaN NaN NaN \n", - "38 NaN NaN NaN \n", - "39 NaN NaN NaN \n", - "40 NaN NaN NaN \n", - "41 NaN NaN NaN \n", - "42 NaN NaN NaN \n", - "43 NaN NaN NaN \n", - "44 NaN NaN NaN \n", - "45 NaN NaN NaN \n", - "46 NaN NaN NaN \n", - "47 NaN NaN NaN \n", - "48 NaN NaN NaN \n", - "49 NaN NaN NaN \n", - "50 NaN NaN NaN \n", - "51 NaN NaN NaN \n", - "52 NaN NaN NaN \n", - "53 NaN NaN NaN \n", - "54 NaN NaN NaN \n", - "55 NaN NaN NaN \n", - "56 NaN NaN NaN \n", - "57 NaN NaN NaN \n", - "58 NaN NaN NaN \n", - "59 NaN NaN NaN \n", - "60 NaN NaN NaN \n", - "61 NaN NaN NaN \n", - "62 NaN NaN NaN \n", - "63 NaN NaN NaN \n", - "64 NaN NaN NaN \n", - "65 NaN NaN NaN \n", - "66 NaN NaN NaN \n", - "67 NaN NaN NaN \n", - "68 NaN 0.0 NaN \n", - "69 1.0 NaN NaN \n", - "70 2.0 NaN NaN \n", - "71 NaN NaN NaN \n", - "72 NaN NaN NaN \n", - "73 NaN NaN NaN \n", - "74 NaN NaN NaN \n", - "75 NaN NaN 0.0 \n", - "76 NaN NaN 1.0 \n", - "77 NaN NaN 2.0 \n", - "78 NaN NaN NaN \n", - "79 NaN NaN NaN \n", - "80 NaN NaN NaN \n", - "81 NaN NaN NaN \n", - "82 NaN NaN NaN \n", - "83 NaN NaN NaN \n", - "84 NaN NaN NaN \n", - "85 NaN NaN NaN \n", - "86 NaN NaN NaN \n", - "87 NaN NaN NaN \n", - "88 NaN NaN NaN \n", - "89 NaN NaN NaN \n", - "90 NaN NaN NaN \n", - "91 NaN NaN NaN \n", - "92 NaN NaN NaN \n", - "93 NaN NaN NaN \n", - "94 NaN NaN NaN \n", - "95 NaN NaN NaN \n", - "96 NaN NaN NaN \n", - "97 NaN NaN NaN \n", - "98 NaN NaN NaN \n", - "99 NaN NaN NaN \n", - "100 NaN NaN NaN \n", - "101 NaN NaN NaN \n", - "102 NaN NaN NaN \n", - "103 NaN NaN NaN \n", - "104 NaN NaN NaN \n", - "\n", - " dav ontological synopsis random rank based dav narrative synopsis \n", - "0 NaN NaN NaN NaN \n", - "1 NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN \n", - "5 NaN NaN NaN NaN \n", - "6 NaN NaN NaN NaN \n", - "7 NaN NaN NaN NaN \n", - "8 NaN NaN NaN NaN \n", - "9 NaN NaN NaN NaN \n", - "10 NaN NaN NaN NaN \n", - "11 NaN NaN NaN NaN \n", - "12 NaN NaN NaN NaN \n", - "13 NaN NaN NaN NaN \n", - "14 NaN NaN NaN NaN \n", - "15 NaN NaN NaN NaN \n", - "16 NaN NaN NaN NaN \n", - "17 NaN NaN NaN NaN \n", - "18 NaN NaN NaN NaN \n", - "19 NaN NaN NaN NaN \n", - "20 NaN NaN NaN NaN \n", - "21 NaN NaN NaN NaN \n", - "22 NaN NaN NaN NaN \n", - "23 NaN NaN NaN NaN \n", - "24 NaN NaN NaN NaN \n", - "25 NaN NaN NaN NaN \n", - "26 NaN NaN NaN NaN \n", - "27 NaN NaN NaN NaN \n", - "28 NaN NaN NaN NaN \n", - "29 NaN NaN NaN NaN \n", - "30 NaN NaN NaN NaN \n", - "31 NaN NaN NaN NaN \n", - "32 NaN NaN NaN NaN \n", - "33 NaN NaN NaN NaN \n", - "34 NaN NaN NaN NaN \n", - "35 NaN NaN NaN NaN \n", - "36 NaN NaN NaN NaN \n", - "37 NaN NaN NaN NaN \n", - "38 NaN NaN NaN NaN \n", - "39 NaN NaN NaN NaN \n", - "40 NaN NaN NaN NaN \n", - "41 NaN NaN NaN NaN \n", - "42 NaN NaN NaN NaN \n", - "43 NaN NaN NaN NaN \n", - "44 NaN NaN NaN NaN \n", - "45 NaN NaN NaN NaN \n", - "46 NaN NaN NaN NaN \n", - "47 NaN NaN NaN NaN \n", - "48 NaN NaN NaN NaN \n", - "49 NaN NaN NaN NaN \n", - "50 NaN NaN NaN NaN \n", - "51 NaN NaN NaN NaN \n", - "52 NaN NaN NaN NaN \n", - "53 NaN NaN NaN NaN \n", - "54 NaN NaN NaN NaN \n", - "55 NaN NaN NaN NaN \n", - "56 NaN NaN NaN NaN \n", - "57 NaN NaN NaN NaN \n", - "58 NaN NaN NaN NaN \n", - "59 NaN NaN NaN NaN \n", - "60 NaN NaN NaN NaN \n", - "61 NaN NaN NaN NaN \n", - "62 NaN NaN NaN NaN \n", - "63 NaN NaN NaN NaN \n", - "64 NaN NaN NaN NaN \n", - "65 NaN NaN NaN NaN \n", - "66 NaN NaN NaN NaN \n", - "67 NaN NaN NaN NaN \n", - "68 NaN NaN NaN NaN \n", - "69 NaN NaN NaN NaN \n", - "70 NaN NaN NaN NaN \n", - "71 NaN NaN NaN NaN \n", - "72 NaN NaN NaN NaN \n", - "73 NaN NaN NaN NaN \n", - "74 NaN NaN NaN NaN \n", - "75 NaN NaN NaN NaN \n", - "76 NaN NaN NaN NaN \n", - "77 NaN NaN NaN NaN \n", - "78 0.0 NaN NaN NaN \n", - "79 1.0 NaN NaN NaN \n", - "80 2.0 7.0 7.0 NaN \n", - "81 3.0 NaN NaN NaN \n", - "82 4.0 NaN NaN NaN \n", - "83 5.0 NaN NaN NaN \n", - "84 6.0 NaN NaN NaN \n", - "85 7.0 NaN NaN NaN \n", - "86 8.0 NaN NaN NaN \n", - "87 9.0 NaN NaN NaN \n", - "88 NaN NaN NaN 0.0 \n", - "89 NaN NaN NaN 1.0 \n", - "90 NaN NaN NaN 2.0 \n", - "91 NaN NaN NaN 3.0 \n", - "92 NaN 0.0 0.0 NaN \n", - "93 NaN 1.0 NaN NaN \n", - "94 NaN 2.0 NaN NaN \n", - "95 NaN 3.0 NaN NaN \n", - "96 NaN 4.0 NaN NaN \n", - "97 NaN 5.0 NaN NaN \n", - "98 NaN 6.0 NaN NaN \n", - "99 NaN NaN 1.0 NaN \n", - "100 NaN NaN 2.0 NaN \n", - "101 NaN NaN 3.0 NaN \n", - "102 NaN NaN 4.0 NaN \n", - "103 NaN NaN 5.0 NaN \n", - "104 NaN NaN 6.0 NaN " - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# terms_summary(peroxisome).style.highlight_min(axis=1, props='font-weight:bold', numeric_only=True)\n", - "terms_summary(peroxisome)" - ] - }, - { - "cell_type": "markdown", - "id": "ccb68aa7", - "metadata": {}, - "source": [ - "## Sensory Ataxia" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8562caa4", - "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
modelmethodhas top hitin top 5in top 10size overlapsimilaritynum termsnum GO termsnr size overlapnr similaritymean p valuemin p valuemax p valueproportion significantnum novel
105GO:0005794Golgi apparatusFalseNaNNaN199.0NaNNaNNaNNaNNaNNaNNaN
486N/AstandardTrueTrueTrue91.009931.000.011.95e-050.041.000106GO:0001750photoreceptor outer segmentFalseNaNNaN135.0NaNNaNNaNNaNNaNNaNNaN
487N/Astandard_no_ontologyFalseFalse107GO:0016020membraneFalse30.304410.200.263.13e-041.000.751NaNNaN191.0NaNNaNNaN7.0NaNNaNNaN
481gpt-3.5-turboontological_synopsisFalseFalse108GO:0006513protein monoubiquitinationFalse20.226210.250.032.24e-020.031.000NaNNaN202.0NaNNaNNaNNaNNaNNaNNaN
480gpt-3.5-turbono_synopsisFalseFalse109GO:0006457protein foldingFalse00.003100.001.001.00e+001.000.001NaNNaN201.0NaNNaNNaNNaNNaNNaNNaN
482gpt-3.5-turbonarrative_synopsisFalseFalse110GO:0021895cerebral cortex neuron differentiationFalse00.003100.001.001.00e+001.000.001NaNNaN318.0NaNNaNNaNNaNNaNNaNNaN
483text-davinci-003no_synopsisFalseFalse111GO:0050905neuromuscular processFalse00.006200.001.001.00e+001.000.002NaNNaN389.0NaNNaNNaNNaNNaNNaNNaN
484text-davinci-003ontological_synopsisFalseFalse112GO:0031267small GTPase bindingFalse00.0012900.001.001.00e+001.000.009NaNNaN323.0NaNNaNNaNNaNNaNNaNNaN
485text-davinci-003narrative_synopsisFalseFalse113BFO:0000003occurrentFalse00.0014500.001.001.00e+001.000.005NaNNaN67.0NaNNaNNaNNaNNaNNaNNaN
488N/ArandomFalse114BFO:0000015processFalseNaNNaN68.0NaNNaNNaNNaNNaNNaNNaN
115GO:0006082organic acid metabolic processFalse00.00151500.001.001.00e+001.000.0015NaNNaN70.0NaNNaNNaNNaNNaNNaNNaN
489N/Arank_based116GO:0006629lipid metabolic processFalseNaNNaN71.0NaNNaNNaNNaN1.0NaNNaN
117GO:0008150biological_processFalseFalse00.00151500.001.001.00e+001.000.0015
\n", - "
" - ], - "text/plain": [ - " model method has top hit in top 5 in top 10 \\\n", - "486 N/A standard True True True \n", - "487 N/A standard_no_ontology False False False \n", - "481 gpt-3.5-turbo ontological_synopsis False False False \n", - "480 gpt-3.5-turbo no_synopsis False False False \n", - "482 gpt-3.5-turbo narrative_synopsis False False False \n", - "483 text-davinci-003 no_synopsis False False False \n", - "484 text-davinci-003 ontological_synopsis False False False \n", - "485 text-davinci-003 narrative_synopsis False False False \n", - "488 N/A random False False False \n", - "489 N/A rank_based False False False \n", - "\n", - " size overlap similarity num terms num GO terms nr size overlap \\\n", - "486 9 1.00 9 9 3 \n", - "487 3 0.30 4 4 1 \n", - "481 2 0.22 6 2 1 \n", - "480 0 0.00 3 1 0 \n", - "482 0 0.00 3 1 0 \n", - "483 0 0.00 6 2 0 \n", - "484 0 0.00 12 9 0 \n", - "485 0 0.00 14 5 0 \n", - "488 0 0.00 15 15 0 \n", - "489 0 0.00 15 15 0 \n", - "\n", - " nr similarity mean p value min p value max p value \\\n", - "486 1.00 0.01 1.95e-05 0.04 \n", - "487 0.20 0.26 3.13e-04 1.00 \n", - "481 0.25 0.03 2.24e-02 0.03 \n", - "480 0.00 1.00 1.00e+00 1.00 \n", - "482 0.00 1.00 1.00e+00 1.00 \n", - "483 0.00 1.00 1.00e+00 1.00 \n", - "484 0.00 1.00 1.00e+00 1.00 \n", - "485 0.00 1.00 1.00e+00 1.00 \n", - "488 0.00 1.00 1.00e+00 1.00 \n", - "489 0.00 1.00 1.00e+00 1.00 \n", - "\n", - " proportion significant num novel \n", - "486 1.00 0 \n", - "487 0.75 1 \n", - "481 1.00 0 \n", - "480 0.00 1 \n", - "482 0.00 1 \n", - "483 0.00 2 \n", - "484 0.00 9 \n", - "485 0.00 5 \n", - "488 0.00 15 \n", - "489 0.00 15 " - ] - }, - "execution_count": 118, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ataxia = df.query(f\"{GENESET} == 'sensory ataxia-0'\").sort_values(\"similarity\", ascending=False)\n", - "ataxia[[MODEL, METHOD] + eval_summary_cols] " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a744a21e", - "metadata": {}, - "outputs": [], - "source": [ - "pd.set_option('display.max_colwidth', None)\n", - "pd.set_option('display.max_rows', None)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "846b7016", - "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", - "
modelmethodgo term idsnovel labels
486N/Astandard[GO:0042552, GO:0008366, GO:0007272, GO:0007422, GO:0014037, GO:0010001, GO:0032287, GO:0006264, GO:0042063][]
487N/Astandard_no_ontology[GO:0021680, GO:0032287, GO:0006264, GO:0007422][cerebellar Purkinje cell layer development]
481gpt-3.5-turboontological_synopsis[GO:0032287, GO:0006264][]
480gpt-3.5-turbono_synopsis[GO:0098930][axonal transport]
482gpt-3.5-turbonarrative_synopsis[GO:0007399][nervous system development]
483text-davinci-003no_synopsis[GO:0015031, GO:0003925][protein transport, G protein activity]
484text-davinci-003ontological_synopsis[GO:0051170, GO:0016567, GO:0004813, GO:0015886, GO:0090304, GO:0034214, GO:0043066, GO:0098743, GO:0098609][import into nucleus, protein ubiquitination, alanine-tRNA ligase activity, heme transport, nucleic acid metabolic process, protein hexamerization, negative regulation of apoptotic process, cell aggregation, cell-cell adhesion]
485text-davinci-003narrative_synopsis[GO:0015031, GO:0006351, GO:0006260, GO:0061630, GO:0003678][protein transport, DNA-templated transcription, DNA replication, ubiquitin protein ligase activity, DNA helicase activity]
488N/Arandom[GO:0005525, GO:0046622, GO:0032991, GO:0005886, GO:0051649, GO:0048471, GO:0045202, GO:0046629, GO:0003106, GO:0005509, GO:0045944, GO:0007268, GO:0006535, GO:0031448, GO:0003690][GTP binding, positive regulation of organ growth, protein-containing complex, plasma membrane, establishment of localization in cell, perinuclear region of cytoplasm, synapse, gamma-delta T cell activation, negative regulation of glomerular filtration by angiotensin, calcium ion binding, positive regulation of transcription by RNA polymerase II, chemical synaptic transmission, cysteine biosynthetic process from serine, positive regulation of fast-twitch skeletal muscle fiber contraction, double-stranded DNA binding]
489N/Arank_based[GO:0070062, GO:0005576, GO:0003723, GO:0005634, GO:0005886, GO:0005829, GO:0046872, GO:0042802, GO:0005737, GO:0005739, GO:0006357, GO:0005615, GO:0005654, GO:0005524, GO:0016020][extracellular exosome, extracellular region, RNA binding, nucleus, plasma membrane, cytosol, metal ion binding, identical protein binding, cytoplasm, mitochondrion, regulation of transcription by RNA polymerase II, extracellular space, nucleoplasm, ATP binding, membrane]
\n", - "
" - ], - "text/plain": [ - " model method \\\n", - "486 N/A standard \n", - "487 N/A standard_no_ontology \n", - "481 gpt-3.5-turbo ontological_synopsis \n", - "480 gpt-3.5-turbo no_synopsis \n", - "482 gpt-3.5-turbo narrative_synopsis \n", - "483 text-davinci-003 no_synopsis \n", - "484 text-davinci-003 ontological_synopsis \n", - "485 text-davinci-003 narrative_synopsis \n", - "488 N/A random \n", - "489 N/A rank_based \n", - "\n", - " go term ids \\\n", - "486 [GO:0042552, GO:0008366, GO:0007272, GO:0007422, GO:0014037, GO:0010001, GO:0032287, GO:0006264, GO:0042063] \n", - "487 [GO:0021680, GO:0032287, GO:0006264, GO:0007422] \n", - "481 [GO:0032287, GO:0006264] \n", - "480 [GO:0098930] \n", - "482 [GO:0007399] \n", - "483 [GO:0015031, GO:0003925] \n", - "484 [GO:0051170, GO:0016567, GO:0004813, GO:0015886, GO:0090304, GO:0034214, GO:0043066, GO:0098743, GO:0098609] \n", - "485 [GO:0015031, GO:0006351, GO:0006260, GO:0061630, GO:0003678] \n", - "488 [GO:0005525, GO:0046622, GO:0032991, GO:0005886, GO:0051649, GO:0048471, GO:0045202, GO:0046629, GO:0003106, GO:0005509, GO:0045944, GO:0007268, GO:0006535, GO:0031448, GO:0003690] \n", - "489 [GO:0070062, GO:0005576, GO:0003723, GO:0005634, GO:0005886, GO:0005829, GO:0046872, GO:0042802, GO:0005737, GO:0005739, GO:0006357, GO:0005615, GO:0005654, GO:0005524, GO:0016020] \n", - "\n", - " novel labels \n", - "486 [] \n", - "487 [cerebellar Purkinje cell layer development] \n", - "481 [] \n", - "480 [axonal transport] \n", - "482 [nervous system development] \n", - "483 [protein transport, G protein activity] \n", - "484 [import into nucleus, protein ubiquitination, alanine-tRNA ligase activity, heme transport, nucleic acid metabolic process, protein hexamerization, negative regulation of apoptotic process, cell aggregation, cell-cell adhesion] \n", - "485 [protein transport, DNA-templated transcription, DNA replication, ubiquitin protein ligase activity, DNA helicase activity] \n", - "488 [GTP binding, positive regulation of organ growth, protein-containing complex, plasma membrane, establishment of localization in cell, perinuclear region of cytoplasm, synapse, gamma-delta T cell activation, negative regulation of glomerular filtration by angiotensin, calcium ion binding, positive regulation of transcription by RNA polymerase II, chemical synaptic transmission, cysteine biosynthetic process from serine, positive regulation of fast-twitch skeletal muscle fiber contraction, double-stranded DNA binding] \n", - "489 [extracellular exosome, extracellular region, RNA binding, nucleus, plasma membrane, cytosol, metal ion binding, identical protein binding, cytoplasm, mitochondrion, regulation of transcription by RNA polymerase II, extracellular space, nucleoplasm, ATP binding, membrane] " - ] - }, - "execution_count": 120, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ataxia[[MODEL, METHOD, GO_TERM_IDS, NOVEL_LABELS]]" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "id": "06560bd8", - "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", @@ -7194,13 +6623,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -7210,13 +6639,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -7226,14 +6655,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -7242,13 +6671,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -7258,13 +6687,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -7274,13 +6703,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -7290,13 +6719,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -7306,13 +6735,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -7322,13 +6751,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -7338,13 +6767,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7354,13 +6783,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7370,13 +6799,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7386,13 +6815,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -7402,14 +6831,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", - " \n", " \n", " \n", " \n", @@ -7418,14 +6847,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", - " \n", " \n", " \n", " \n", @@ -7434,14 +6863,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", - " \n", " \n", " \n", " \n", @@ -7450,15 +6879,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -7466,15 +6895,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -7482,15 +6911,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -7498,748 +6927,749 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8247,15 +7677,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8263,15 +7693,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8279,15 +7709,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8295,15 +7725,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8311,15 +7741,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8327,15 +7757,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8343,15 +7773,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8359,15 +7789,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8375,15 +7805,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8391,15 +7821,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8407,15 +7837,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8423,15 +7853,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8439,15 +7869,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -8455,566 +7885,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - "
idlabelredundantstandardstandard no ontologyturbo ontological synopsisturbo no synopsisturbo narrative synopsisdav no synopsisdav narrative synopsisdav ontological synopsisrandomrank based
0GO:0042552myelinationFalse0.0NaNNaN73.0NaNNaNNaNNaN
1GO:0008366axon ensheathmentTrue1.0118GO:0008152metabolic processFalseNaNNaN74.0NaNNaNNaNNaN
2GO:0007272ensheathment of neuronsTrue2.0119GO:0009987cellular processFalseNaNNaN75.0NaNNaNNaNNaN
3GO:0007422peripheral nervous system development120GO:0019752carboxylic acid metabolic processFalse3.03.0NaNNaN76.0NaNNaNNaNNaNNaN
4GO:0014037Schwann cell differentiationTrue4.0121GO:0032787monocarboxylic acid metabolic processFalseNaNNaN77.0NaNNaNNaNNaN
5GO:0010001glial cell differentiationTrue5.0122GO:0043436oxoacid metabolic processFalseNaNNaN78.0NaNNaNNaNNaN
6GO:0032287peripheral nervous system myelin maintenanceTrue6.01.00.0123GO:0044237cellular metabolic processFalseNaNNaN79.0NaNNaNNaNNaN
7GO:0006264mitochondrial DNA replication124GO:0044238primary metabolic processFalse7.02.01.0NaNNaN80.0NaNNaNNaNNaN
8GO:0042063gliogenesisTrue8.0125GO:0044255cellular lipid metabolic processFalseNaNNaN81.0NaNNaNNaNNaN
9GO:0021680cerebellar Purkinje cell layer development126GO:0044281small molecule metabolic processFalseNaN0.0NaN82.0NaNNaNNaNNaN
10mitochondrial functionNone127GO:0071704organic substance metabolic processFalseNaNNaN2.083.0NaNNaNNaNNaN
11mitochondrial dna depletionNoneFalse128GO:0003674molecular_functionFalseNaNNaN3.085.0NaNNaNNaNNaN
12MONDO:0015626None129GO:0005488bindingFalseNaNNaN4.087.0NaNNaNNaNNaN
13axonal diseaseNone130GO:0033218amide bindingFalseNaNNaN5.088.0NaNNaNNaNNaN
14mitochondrial dysfunctionNone131GO:0042277peptide bindingFalseNaNNaN89.0NaN0.0NaNNaNNaNNaN
15GO:0098930axonal transport132GO:0006914autophagyFalseNaNNaN91.0NaN1.0NaNNaNNaNNaN
16myelin sheath developmentNone133GO:0009056catabolic processFalseNaNNaN92.0NaN2.0NaNNaNNaNNaN
17GO:0007399nervous system development134GO:0016236macroautophagyFalseNaNNaN93.0NaNNaN0.0NaNNaNNaNNaN
18MONDO:0005071None135GO:0044248cellular catabolic processFalseNaNNaN95.0NaNNaN1.0NaNNaNNaNNaN
19myelin sheath maintenanceNone136GO:0061912selective autophagyFalseNaNNaN96.0NaNNaN2.0NaNNaNNaNNaN
20GO:0015031protein transport137GO:0061919process utilizing autophagic mechanismFalseNaNNaN97.0NaNNaNNaNNaN0.00.0NaNNaNNaN
21structural proteinsNone138BFO:0000002continuantFalseNaNNaN98.0NaNNaNNaN1.0NaNNaNNaNNaN
22type i transmembrane proteinsNone139BFO:0000004independent continuantFalseNaNNaN99.0NaNNaNNaN2.0NaNNaNNaNNaN
23signaling proteinsNone140BFO:0000040material entityFalseNaNNaN100.0NaNNaNNaN3.0NaNNaNNaNNaN
24GO:0003925G protein activity141CARO:0000000anatomical entityFalseNaNNaN101.0NaNNaNNaN4.0NaNNaNNaNNaN
25myelin formation and maintenanceNone142CARO:0000003connected anatomical structureFalseNaNNaN102.0NaNNaNNaN5.0NaNNaNNaNNaN
26nerve impulse transmissionNone143CARO:0000006material anatomical entityFalseNaNNaN103.0NaNNaNNaNNaNNaN0.0NaNNaN
27positive regulation of transcriptionNone144CARO:0030000biological entityFalseNaNNaN104.0NaNNaNNaNNaNNaN1.0NaNNaN
28GO:0051170import into nucleus145CL:0000000cellFalseNaNNaN105.0NaNNaNNaNNaNNaN2.0NaNNaN
29GO:0016567protein ubiquitination146CL:0000003native cellFalseNaNNaN106.0NaNNaNNaNNaNNaN3.0NaNNaN
30dna-bindingNone147CL:0000006neuronal receptor cellFalseNaNNaN107.0NaNNaNNaNNaNNaN4.0NaNNaN
31GO:0004813alanine-tRNA ligase activity148CL:0000101sensory neuronFalseNaNNaN108.0NaNNaNNaNNaNNaN5.0NaNNaN
32GO:0015886heme transport149CL:0000197sensory receptor cellFalseNaNNaN109.0NaNNaNNaNNaNNaN6.0NaNNaN
33GO:0090304nucleic acid metabolic process150CL:0000210photoreceptor cellFalseNaNNaN110.0NaNNaNNaNNaNNaN7.0NaNNaN
34GO:0034214protein hexamerization151CL:0000211electrically active cellFalseNaNNaN111.0NaNNaNNaNNaNNaN8.0NaNNaN
35GO:0043066negative regulation of apoptotic process152CL:0000255eukaryotic cellFalseNaNNaN112.0NaNNaNNaNNaNNaN9.0NaNNaN
36GO:0098743cell aggregation153CL:0000393electrically responsive cellFalseNaNNaN113.0NaNNaNNaNNaNNaN10.0NaNNaN
37GO:0098609cell-cell adhesion154CL:0000404electrically signaling cellFalseNaNNaN114.0NaNNaNNaNNaNNaN11.0NaNNaN
38GO:0006351DNA-templated transcription155CL:0000526afferent neuronFalseNaNNaN115.0NaNNaNNaNNaN1.0NaNNaNNaN
39phosphate isomerizationNone156CL:0000540neuronFalseNaNNaN116.0NaNNaNNaNNaN2.0NaNNaNNaN
40GO:0006260DNA replication157CL:0000548animal cellFalseNaNNaN117.0NaNNaNNaNNaN3.0NaNNaNNaN
41rna synthetizationNone158CL:0002319neural cellFalseNaNNaN118.0NaNNaNNaNNaN4.0NaNNaNNaN
42GO:0061630ubiquitin protein ligase activity159CL:0002371somatic cellFalseNaNNaN119.0NaNNaNNaNNaN5.0NaNNaNNaN
43tetracyclic repeat motifsNone160GO:0005575cellular_componentFalseNaNNaN120.0NaNNaNNaNNaN6.0NaNNaNNaN
44transmembrane domain interactionsNone161GO:0005929ciliumFalseNaNNaN121.0NaNNaNNaNNaN7.0NaNNaNNaN
45erythroid cell protectionNone162GO:0042995cell projectionFalseNaNNaN122.0NaNNaNNaNNaN8.0NaNNaNNaN
46MESH:D009414None163GO:0043005neuron projectionFalseNaNNaN123.0NaNNaNNaNNaN9.0NaNNaNNaN
47cytokine regulationNone164GO:0043226organelleFalseNaNNaN124.0NaNNaNNaNNaN10.0NaNNaNNaN
48GO:0003678DNA helicase activity165GO:0043227membrane-bounded organelleFalseNaNNaN125.0NaNNaNNaNNaN11.0NaNNaNNaN
49protein-rna interactionsNone166GO:0097730non-motile ciliumFalseNaNNaN126.0NaNNaNNaNNaN12.0NaNNaNNaN
50protein recognitionNone167GO:00977319+0 non-motile ciliumFalseNaNNaN127.0NaNNaNNaNNaN13.0NaNNaNNaN
51GO:0005525GTP binding168GO:0110165cellular anatomical entityFalseNaNNaN129.0NaNNaNNaNNaNNaNNaN0.0NaN
52GO:0046622positive regulation of organ growth169GO:0120025plasma membrane bounded cell projectionFalseNaNNaN130.0NaNNaNNaNNaNNaNNaN1.0NaN
53GO:0032991protein-containing complex170PR:000050567protein-containing material entityFalseNaNNaN131.0NaNNaNNaNNaNNaNNaN2.0NaN
54GO:0005886plasma membrane171UBERON:0000061anatomical structureFalseNaNNaN132.0NaNNaNNaNNaNNaNNaNNaN3.04.0
55GO:0051649establishment of localization in cell172UBERON:0000465material anatomical entityFalseNaNNaN133.0NaNNaNNaNNaNNaNNaN4.0NaN
56GO:0048471perinuclear region of cytoplasm173UBERON:0001062anatomical entityFalseNaNNaN134.0NaNNaNNaNNaNNaNNaN5.0NaN
57GO:0045202synapse174GO:0007275multicellular organism developmentFalseNaNNaN136.0NaNNaNNaNNaNNaNNaN6.0NaN
58GO:0046629gamma-delta T cell activation175GO:0007399nervous system developmentFalseNaNNaN137.0NaNNaNNaNNaNNaNNaN7.0NaN
59GO:0003106negative regulation of glomerular filtration by angiotensin176GO:0022008neurogenesisFalseNaNNaN138.0NaNNaNNaNNaNNaNNaN8.0NaN
60GO:0005509calcium ion binding177GO:0030154cell differentiationFalseNaNNaN139.0NaNNaNNaNNaNNaNNaN9.0NaN
61GO:0045944positive regulation of transcription by RNA polymerase II178GO:0032501multicellular organismal processFalseNaNNaN140.0NaNNaNNaNNaNNaNNaN10.0NaN
62GO:0007268chemical synaptic transmission179GO:0032502developmental processFalseNaNNaN141.0NaNNaNNaNNaNNaNNaN11.0NaN
63GO:0006535cysteine biosynthetic process from serine180GO:0048699generation of neuronsFalseNaNNaN142.0NaNNaNNaNNaNNaNNaN12.0NaN
64GO:0031448positive regulation of fast-twitch skeletal muscle fiber contraction181GO:0048731system developmentFalseNaNNaN143.0NaNNaNNaNNaNNaNNaN13.0NaN
65GO:0003690double-stranded DNA binding182GO:0048856anatomical structure developmentFalseNaNNaN144.0NaNNaNNaNNaNNaNNaN14.0NaN
66GO:0070062extracellular exosome183GO:0048869cellular developmental processFalseNaNNaN145.0NaNNaNNaNNaNNaNNaN0.0
67GO:0005576extracellular region184GO:0016477cell migrationFalseNaNNaN147.0NaNNaNNaNNaNNaNNaN1.0
68GO:0003723RNA binding185GO:0048870cell motilityFalseNaNNaN148.0NaNNaNNaNNaNNaNNaN2.0
69GO:0005634nucleus186GO:0001501skeletal system developmentFalseNaNNaN149.0NaNNaNNaNNaNNaNNaN3.0
70GO:0005829cytosol187GO:0009653anatomical structure morphogenesisFalseNaNNaN150.0NaNNaNNaNNaNNaNNaN5.0
71GO:0046872metal ion binding188GO:0009887animal organ morphogenesisFalseNaNNaN151.0NaNNaNNaNNaNNaNNaN6.0
72GO:0042802identical protein binding189GO:0048513animal organ developmentFalseNaNNaN152.0NaNNaNNaNNaNNaNNaN7.0
73GO:0005737cytoplasm190GO:0048705skeletal system morphogenesisFalseNaNNaN153.0NaNNaNNaNNaNNaNNaN8.0
74GO:0005739mitochondrion191GO:0060348bone developmentFalseNaNNaN154.0NaNNaNNaNNaNNaNNaN9.0
75GO:0006357regulation of transcription by RNA polymerase II192GO:0060349bone morphogenesisFalseNaNNaN155.0NaNNaNNaNNaNNaNNaN10.0
76GO:0005615extracellular space193GO:0060350endochondral bone morphogenesisFalseNaNNaN156.0NaNNaNNaNNaNNaNNaN11.0
77GO:0005654nucleoplasm194GO:0001503ossificationFalseNaNNaN157.0NaNNaNNaNNaNNaNNaN12.0
78GO:0005524ATP binding195GO:0036075replacement ossificationFalseNaNNaN159.0NaNNaNNaNNaNNaNNaN13.0
79GO:0016020membrane196GO:0000166nucleotide bindingFalseNaNNaN162.0NaNNaNNaNNaNNaNNaN14.0
\n", - "
" - ], - "text/plain": [ - " id \\\n", - "0 GO:0042552 \n", - "1 GO:0008366 \n", - "2 GO:0007272 \n", - "3 GO:0007422 \n", - "4 GO:0014037 \n", - "5 GO:0010001 \n", - "6 GO:0032287 \n", - "7 GO:0006264 \n", - "8 GO:0042063 \n", - "9 GO:0021680 \n", - "10 mitochondrial function \n", - "11 mitochondrial dna depletion \n", - "12 MONDO:0015626 \n", - "13 axonal disease \n", - "14 mitochondrial dysfunction \n", - "15 GO:0098930 \n", - "16 myelin sheath development \n", - "17 GO:0007399 \n", - "18 MONDO:0005071 \n", - "19 myelin sheath maintenance \n", - "20 GO:0015031 \n", - "21 structural proteins \n", - "22 type i transmembrane proteins \n", - "23 signaling proteins \n", - "24 GO:0003925 \n", - "25 myelin formation and maintenance \n", - "26 nerve impulse transmission \n", - "27 positive regulation of transcription \n", - "28 GO:0051170 \n", - "29 GO:0016567 \n", - "30 dna-binding \n", - "31 GO:0004813 \n", - "32 GO:0015886 \n", - "33 GO:0090304 \n", - "34 GO:0034214 \n", - "35 GO:0043066 \n", - "36 GO:0098743 \n", - "37 GO:0098609 \n", - "38 GO:0006351 \n", - "39 phosphate isomerization \n", - "40 GO:0006260 \n", - "41 rna synthetization \n", - "42 GO:0061630 \n", - "43 tetracyclic repeat motifs \n", - "44 transmembrane domain interactions \n", - "45 erythroid cell protection \n", - "46 MESH:D009414 \n", - "47 cytokine regulation \n", - "48 GO:0003678 \n", - "49 protein-rna interactions \n", - "50 protein recognition \n", - "51 GO:0005525 \n", - "52 GO:0046622 \n", - "53 GO:0032991 \n", - "54 GO:0005886 \n", - "55 GO:0051649 \n", - "56 GO:0048471 \n", - "57 GO:0045202 \n", - "58 GO:0046629 \n", - "59 GO:0003106 \n", - "60 GO:0005509 \n", - "61 GO:0045944 \n", - "62 GO:0007268 \n", - "63 GO:0006535 \n", - "64 GO:0031448 \n", - "65 GO:0003690 \n", - "66 GO:0070062 \n", - "67 GO:0005576 \n", - "68 GO:0003723 \n", - "69 GO:0005634 \n", - "70 GO:0005829 \n", - "71 GO:0046872 \n", - "72 GO:0042802 \n", - "73 GO:0005737 \n", - "74 GO:0005739 \n", - "75 GO:0006357 \n", - "76 GO:0005615 \n", - "77 GO:0005654 \n", - "78 GO:0005524 \n", - "79 GO:0016020 \n", - "\n", - " label \\\n", - "0 myelination \n", - "1 axon ensheathment \n", - "2 ensheathment of neurons \n", - "3 peripheral nervous system development \n", - "4 Schwann cell differentiation \n", - "5 glial cell differentiation \n", - "6 peripheral nervous system myelin maintenance \n", - "7 mitochondrial DNA replication \n", - "8 gliogenesis \n", - "9 cerebellar Purkinje cell layer development \n", - "10 None \n", - "11 None \n", - "12 None \n", - "13 None \n", - "14 None \n", - "15 axonal transport \n", - "16 None \n", - "17 nervous system development \n", - "18 None \n", - "19 None \n", - "20 protein transport \n", - "21 None \n", - "22 None \n", - "23 None \n", - "24 G protein activity \n", - "25 None \n", - "26 None \n", - "27 None \n", - "28 import into nucleus \n", - "29 protein ubiquitination \n", - "30 None \n", - "31 alanine-tRNA ligase activity \n", - "32 heme transport \n", - "33 nucleic acid metabolic process \n", - "34 protein hexamerization \n", - "35 negative regulation of apoptotic process \n", - "36 cell aggregation \n", - "37 cell-cell adhesion \n", - "38 DNA-templated transcription \n", - "39 None \n", - "40 DNA replication \n", - "41 None \n", - "42 ubiquitin protein ligase activity \n", - "43 None \n", - "44 None \n", - "45 None \n", - "46 None \n", - "47 None \n", - "48 DNA helicase activity \n", - "49 None \n", - "50 None \n", - "51 GTP binding \n", - "52 positive regulation of organ growth \n", - "53 protein-containing complex \n", - "54 plasma membrane \n", - "55 establishment of localization in cell \n", - "56 perinuclear region of cytoplasm \n", - "57 synapse \n", - "58 gamma-delta T cell activation \n", - "59 negative regulation of glomerular filtration by angiotensin \n", - "60 calcium ion binding \n", - "61 positive regulation of transcription by RNA polymerase II \n", - "62 chemical synaptic transmission \n", - "63 cysteine biosynthetic process from serine \n", - "64 positive regulation of fast-twitch skeletal muscle fiber contraction \n", - "65 double-stranded DNA binding \n", - "66 extracellular exosome \n", - "67 extracellular region \n", - "68 RNA binding \n", - "69 nucleus \n", - "70 cytosol \n", - "71 metal ion binding \n", - "72 identical protein binding \n", - "73 cytoplasm \n", - "74 mitochondrion \n", - "75 regulation of transcription by RNA polymerase II \n", - "76 extracellular space \n", - "77 nucleoplasm \n", - "78 ATP binding \n", - "79 membrane \n", - "\n", - " redundant standard standard no ontology turbo ontological synopsis \\\n", - "0 False 0.0 NaN NaN \n", - "1 True 1.0 NaN NaN \n", - "2 True 2.0 NaN NaN \n", - "3 False 3.0 3.0 NaN \n", - "4 True 4.0 NaN NaN \n", - "5 True 5.0 NaN NaN \n", - "6 True 6.0 1.0 0.0 \n", - "7 False 7.0 2.0 1.0 \n", - "8 True 8.0 NaN NaN \n", - "9 False NaN 0.0 NaN \n", - "10 False NaN NaN 2.0 \n", - "11 False NaN NaN 3.0 \n", - "12 False NaN NaN 4.0 \n", - "13 False NaN NaN 5.0 \n", - "14 False NaN NaN NaN \n", - "15 False NaN NaN NaN \n", - "16 False NaN NaN NaN \n", - "17 False NaN NaN NaN \n", - "18 False NaN NaN NaN \n", - "19 False NaN NaN NaN \n", - "20 False NaN NaN NaN \n", - "21 False NaN NaN NaN \n", - "22 False NaN NaN NaN \n", - "23 False NaN NaN NaN \n", - "24 False NaN NaN NaN \n", - "25 False NaN NaN NaN \n", - "26 False NaN NaN NaN \n", - "27 False NaN NaN NaN \n", - "28 False NaN NaN NaN \n", - "29 False NaN NaN NaN \n", - "30 False NaN NaN NaN \n", - "31 False NaN NaN NaN \n", - "32 False NaN NaN NaN \n", - "33 False NaN NaN NaN \n", - "34 False NaN NaN NaN \n", - "35 False NaN NaN NaN \n", - "36 False NaN NaN NaN \n", - "37 False NaN NaN NaN \n", - "38 False NaN NaN NaN \n", - "39 False NaN NaN NaN \n", - "40 False NaN NaN NaN \n", - "41 False NaN NaN NaN \n", - "42 False NaN NaN NaN \n", - "43 False NaN NaN NaN \n", - "44 False NaN NaN NaN \n", - "45 False NaN NaN NaN \n", - "46 False NaN NaN NaN \n", - "47 False NaN NaN NaN \n", - "48 False NaN NaN NaN \n", - "49 False NaN NaN NaN \n", - "50 False NaN NaN NaN \n", - "51 False NaN NaN NaN \n", - "52 False NaN NaN NaN \n", - "53 False NaN NaN NaN \n", - "54 False NaN NaN NaN \n", - "55 False NaN NaN NaN \n", - "56 False NaN NaN NaN \n", - "57 False NaN NaN NaN \n", - "58 False NaN NaN NaN \n", - "59 False NaN NaN NaN \n", - "60 False NaN NaN NaN \n", - "61 False NaN NaN NaN \n", - "62 False NaN NaN NaN \n", - "63 False NaN NaN NaN \n", - "64 False NaN NaN NaN \n", - "65 False NaN NaN NaN \n", - "66 False NaN NaN NaN \n", - "67 False NaN NaN NaN \n", - "68 False NaN NaN NaN \n", - "69 False NaN NaN NaN \n", - "70 False NaN NaN NaN \n", - "71 False NaN NaN NaN \n", - "72 False NaN NaN NaN \n", - "73 False NaN NaN NaN \n", - "74 False NaN NaN NaN \n", - "75 False NaN NaN NaN \n", - "76 False NaN NaN NaN \n", - "77 False NaN NaN NaN \n", - "78 False NaN NaN NaN \n", - "79 False NaN NaN NaN \n", - "\n", - " turbo no synopsis turbo narrative synopsis dav no synopsis \\\n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", - "5 NaN NaN NaN \n", - "6 NaN NaN NaN \n", - "7 NaN NaN NaN \n", - "8 NaN NaN NaN \n", - "9 NaN NaN NaN \n", - "10 NaN NaN NaN \n", - "11 NaN NaN NaN \n", - "12 NaN NaN NaN \n", - "13 NaN NaN NaN \n", - "14 0.0 NaN NaN \n", - "15 1.0 NaN NaN \n", - "16 2.0 NaN NaN \n", - "17 NaN 0.0 NaN \n", - "18 NaN 1.0 NaN \n", - "19 NaN 2.0 NaN \n", - "20 NaN NaN 0.0 \n", - "21 NaN NaN 1.0 \n", - "22 NaN NaN 2.0 \n", - "23 NaN NaN 3.0 \n", - "24 NaN NaN 4.0 \n", - "25 NaN NaN 5.0 \n", - "26 NaN NaN NaN \n", - "27 NaN NaN NaN \n", - "28 NaN NaN NaN \n", - "29 NaN NaN NaN \n", - "30 NaN NaN NaN \n", - "31 NaN NaN NaN \n", - "32 NaN NaN NaN \n", - "33 NaN NaN NaN \n", - "34 NaN NaN NaN \n", - "35 NaN NaN NaN \n", - "36 NaN NaN NaN \n", - "37 NaN NaN NaN \n", - "38 NaN NaN NaN \n", - "39 NaN NaN NaN \n", - "40 NaN NaN NaN \n", - "41 NaN NaN NaN \n", - "42 NaN NaN NaN \n", - "43 NaN NaN NaN \n", - "44 NaN NaN NaN \n", - "45 NaN NaN NaN \n", - "46 NaN NaN NaN \n", - "47 NaN NaN NaN \n", - "48 NaN NaN NaN \n", - "49 NaN NaN NaN \n", - "50 NaN NaN NaN \n", - "51 NaN NaN NaN \n", - "52 NaN NaN NaN \n", - "53 NaN NaN NaN \n", - "54 NaN NaN NaN \n", - "55 NaN NaN NaN \n", - "56 NaN NaN NaN \n", - "57 NaN NaN NaN \n", - "58 NaN NaN NaN \n", - "59 NaN NaN NaN \n", - "60 NaN NaN NaN \n", - "61 NaN NaN NaN \n", - "62 NaN NaN NaN \n", - "63 NaN NaN NaN \n", - "64 NaN NaN NaN \n", - "65 NaN NaN NaN \n", - "66 NaN NaN NaN \n", - "67 NaN NaN NaN \n", - "68 NaN NaN NaN \n", - "69 NaN NaN NaN \n", - "70 NaN NaN NaN \n", - "71 NaN NaN NaN \n", - "72 NaN NaN NaN \n", - "73 NaN NaN NaN \n", - "74 NaN NaN NaN \n", - "75 NaN NaN NaN \n", - "76 NaN NaN NaN \n", - "77 NaN NaN NaN \n", - "78 NaN NaN NaN \n", - "79 NaN NaN NaN \n", - "\n", - " dav narrative synopsis dav ontological synopsis random rank based \n", - "0 NaN NaN NaN NaN \n", - "1 NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN \n", - "5 NaN NaN NaN NaN \n", - "6 NaN NaN NaN NaN \n", - "7 NaN NaN NaN NaN \n", - "8 NaN NaN NaN NaN \n", - "9 NaN NaN NaN NaN \n", - "10 NaN NaN NaN NaN \n", - "11 NaN NaN NaN NaN \n", - "12 NaN NaN NaN NaN \n", - "13 NaN NaN NaN NaN \n", - "14 NaN NaN NaN NaN \n", - "15 NaN NaN NaN NaN \n", - "16 NaN NaN NaN NaN \n", - "17 NaN NaN NaN NaN \n", - "18 NaN NaN NaN NaN \n", - "19 NaN NaN NaN NaN \n", - "20 0.0 NaN NaN NaN \n", - "21 NaN NaN NaN NaN \n", - "22 NaN NaN NaN NaN \n", - "23 NaN NaN NaN NaN \n", - "24 NaN NaN NaN NaN \n", - "25 NaN NaN NaN NaN \n", - "26 NaN 0.0 NaN NaN \n", - "27 NaN 1.0 NaN NaN \n", - "28 NaN 2.0 NaN NaN \n", - "29 NaN 3.0 NaN NaN \n", - "30 NaN 4.0 NaN NaN \n", - "31 NaN 5.0 NaN NaN \n", - "32 NaN 6.0 NaN NaN \n", - "33 NaN 7.0 NaN NaN \n", - "34 NaN 8.0 NaN NaN \n", - "35 NaN 9.0 NaN NaN \n", - "36 NaN 10.0 NaN NaN \n", - "37 NaN 11.0 NaN NaN \n", - "38 1.0 NaN NaN NaN \n", - "39 2.0 NaN NaN NaN \n", - "40 3.0 NaN NaN NaN \n", - "41 4.0 NaN NaN NaN \n", - "42 5.0 NaN NaN NaN \n", - "43 6.0 NaN NaN NaN \n", - "44 7.0 NaN NaN NaN \n", - "45 8.0 NaN NaN NaN \n", - "46 9.0 NaN NaN NaN \n", - "47 10.0 NaN NaN NaN \n", - "48 11.0 NaN NaN NaN \n", - "49 12.0 NaN NaN NaN \n", - "50 13.0 NaN NaN NaN \n", - "51 NaN NaN 0.0 NaN \n", - "52 NaN NaN 1.0 NaN \n", - "53 NaN NaN 2.0 NaN \n", - "54 NaN NaN 3.0 4.0 \n", - "55 NaN NaN 4.0 NaN \n", - "56 NaN NaN 5.0 NaN \n", - "57 NaN NaN 6.0 NaN \n", - "58 NaN NaN 7.0 NaN \n", - "59 NaN NaN 8.0 NaN \n", - "60 NaN NaN 9.0 NaN \n", - "61 NaN NaN 10.0 NaN \n", - "62 NaN NaN 11.0 NaN \n", - "63 NaN NaN 12.0 NaN \n", - "64 NaN NaN 13.0 NaN \n", - "65 NaN NaN 14.0 NaN \n", - "66 NaN NaN NaN 0.0 \n", - "67 NaN NaN NaN 1.0 \n", - "68 NaN NaN NaN 2.0 \n", - "69 NaN NaN NaN 3.0 \n", - "70 NaN NaN NaN 5.0 \n", - "71 NaN NaN NaN 6.0 \n", - "72 NaN NaN NaN 7.0 \n", - "73 NaN NaN NaN 8.0 \n", - "74 NaN NaN NaN 9.0 \n", - "75 NaN NaN NaN 10.0 \n", - "76 NaN NaN NaN 11.0 \n", - "77 NaN NaN NaN 12.0 \n", - "78 NaN NaN NaN 13.0 \n", - "79 NaN NaN NaN 14.0 " - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "terms_summary(ataxia)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "76c0b8ee", - "metadata": {}, - "outputs": [], - "source": [ - "def retrieve_payload(geneset, method):\n", - " for comp in comps:\n", - " if comp.name == geneset:\n", - " return comp.payloads[method]" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "17c4d4f6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Summary: These genes are involved in various processes related to the peripheral nervous system and nucleic acid metabolism, including myelination, DNA replication, and protein ubiquitination.\n", - "Mechanism: These genes may be involved in the maintenance, repair, and regulation of the peripheral nervous system and nucleic acids.\n", - "Enriched Terms: peripheral nervous system myelin maintenance; myelination; DNA replication; protein ubiquitination.\n" - ] - } - ], - "source": [ - "print(retrieve_payload(\"sensory ataxia-0\", \"gpt-3.5-turbo.ontological_synopsis\").response_text)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "2fb5f713", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Summary: Genes are involved in various neurological and metabolic disorders. Enriched terms include \"peripheral nervous system development,\" \"neurological system process,\" and \"mitochondrial DNA replication.\"\n", - "\n", - "Mechanism: The enriched terms suggest a common theme of neurological and metabolic dysfunction related to the peripheral nervous system and mitochondrial function.\n", - "\n", - "Enriched Terms: peripheral nervous system development; neurological system process; mitochondrial DNA replication.\n" - ] - } - ], - "source": [ - "print(retrieve_payload(\"sensory ataxia-0\", \"gpt-3.5-turbo.narrative_synopsis\").response_text)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "652ef2a2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Summary: Enriched terms are related to myelin sheath formation, neuronal development, and protein processing.\n", - "Enriched Terms: Myelination; Neuron development; Protein folding; Protein targeting to ER; ATP binding; Axon ensheathment; Mitochondrial genome maintenance; Zinc ion binding.\n" - ] - } - ], - "source": [ - "print(retrieve_payload(\"sensory ataxia-0\", \"gpt-3.5-turbo.no_synopsis\").response_text)" - ] - }, - { - "cell_type": "markdown", - "id": "5876611c", - "metadata": {}, - "source": [ - "## Endocytosis" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "4df09ade", - "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", @@ -9024,31 +7903,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -9056,14 +7919,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -9072,13 +7935,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9088,13 +7951,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9104,13 +7967,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9120,13 +7983,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9136,13 +7999,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9152,13 +8015,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9168,13 +8031,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9184,13 +8047,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9200,13 +8063,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9216,13 +8079,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9232,13 +8095,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9248,29 +8111,29 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9280,14 +8143,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -9296,15 +8159,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", " \n", @@ -9312,13 +8175,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9328,13 +8191,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9344,13 +8207,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9360,13 +8223,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9376,13 +8239,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9392,13 +8255,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9408,29 +8271,29 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9440,13 +8303,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9456,13 +8319,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9472,13 +8335,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9488,13 +8351,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9504,14 +8367,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -9520,13 +8383,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9536,13 +8399,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9552,13 +8415,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9568,13 +8431,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9584,13 +8447,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9600,13 +8463,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9616,13 +8479,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9632,13 +8495,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9648,29 +8511,29 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9680,13 +8543,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9696,13 +8559,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9712,14 +8575,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -9728,13 +8591,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9744,13 +8607,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9760,13 +8623,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9776,14 +8639,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -9792,13 +8655,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9808,13 +8671,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9824,13 +8687,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9840,13 +8703,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9856,13 +8719,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9872,13 +8735,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9888,13 +8751,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9904,13 +8767,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9920,13 +8783,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9936,13 +8799,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9952,13 +8815,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9968,13 +8831,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -9984,13 +8847,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10000,13 +8863,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10016,14 +8879,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10032,14 +8895,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10048,14 +8911,14 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10064,29 +8927,29 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10096,13 +8959,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10112,13 +8975,13 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -10128,15 +8991,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10144,31 +9007,31 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10176,15 +9039,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10192,15 +9055,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10208,15 +9071,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10224,15 +9087,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10240,15 +9103,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10256,15 +9119,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10272,15 +9135,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10288,15 +9151,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10304,15 +9167,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10320,15 +9183,15 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -10336,172 +9199,173 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10509,15 +9373,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10525,15 +9389,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10541,15 +9405,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10557,15 +9421,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10573,15 +9437,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10589,15 +9453,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10605,15 +9469,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10621,15 +9485,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10637,15 +9501,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10653,15 +9517,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10669,31 +9533,31 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10701,15 +9565,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10717,15 +9581,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10733,15 +9597,15 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -10749,243 +9613,6004 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", " \n", - " \n", - "
idlabelredundantstandardstandard no ontologyturbo gpt-3.5-turbo.ontological synopsisdav text-davinci-003.narrative synopsisdav text-davinci-003.ontological synopsisturbo gpt-3.5-turbo.narrative synopsisturbo gpt-3.5-turbo.no synopsisrank baseddav text-davinci-003.no synopsisrandom
0GO:0006907pinocytosis197GO:0017076purine nucleotide bindingFalse0.01.03.0NaNNaN164.0NaNNaNNaNNaN
1GO:0006897endocytosisTrue1.06.00.01.013.00.01.0198GO:0030554adenyl nucleotide bindingFalseNaNNaN165.0NaN
2GO:0044351macropinocytosisTrue2.00.0NaN5.03.0NaNNaNNaNNaN
3GO:0016192vesicle-mediated transportTrue3.0199GO:0032553ribonucleotide bindingFalseNaNNaN3.0166.0NaNNaNNaNNaNNaN
4GO:0030100regulation of endocytosis200GO:0032555purine ribonucleotide bindingFalse4.0NaNNaN167.0NaNNaNNaNNaN
5GO:0006810transportTrue5.0201GO:0032559adenyl ribonucleotide bindingFalseNaNNaN168.0NaNNaNNaNNaN
6GO:0051234establishment of localizationTrue6.0202GO:0035639purine ribonucleoside triphosphate bindingFalseNaNNaN169.0NaNNaNNaNNaN
7GO:0045807positive regulation of endocytosisTrue7.0203GO:0036094small molecule bindingFalseNaNNaN170.0NaNNaNNaNNaN
8GO:0060627regulation of vesicle-mediated transportTrue8.0204GO:0043167ion bindingFalseNaNNaN171.0NaNNaNNaNNaN
9GO:0051179localizationTrue9.0205GO:0043168anion bindingFalseNaNNaN172.0NaNNaNNaNNaN
10GO:0031410cytoplasmic vesicle206GO:0097159organic cyclic compound bindingFalse10.0NaNNaN173.0NaNNaNNaNNaN
11GO:0097708intracellular vesicleTrue11.0207GO:0097367carbohydrate derivative bindingFalseNaNNaN174.0NaNNaNNaNNaN
12GO:0050766positive regulation of phagocytosisTrue12.04.0208GO:1901265nucleoside phosphate bindingFalseNaNNaN175.0NaNNaNNaNNaN
13GO:0048518positive regulation of biological processTrue13.0209GO:1901363heterocyclic compound bindingFalseNaNNaN176.0NaNNaNNaNNaN
14GO:0050764regulation of phagocytosisTrue14.0210GO:0005622intracellular anatomical structureFalseNaNNaN177.0NaNNaNNaNNaN
15GO:0051128regulation of cellular component organizationTrue15.0NaN211GO:0005634nucleusFalseNaNNaN178.0NaNNaNNaN1.0NaNNaNNaN
16GO:0031982vesicleTrue16.0212GO:0031974membrane-enclosed lumenFalseNaNNaN179.0NaNNaNNaNNaN
17GO:0150094amyloid-beta clearance by cellular catabolic process213GO:0031981nuclear lumenFalse17.03.0NaNNaN180.0NaNNaNNaNNaNNaN
18GO:0006909phagocytosisTrue18.017.04.0214GO:0043229intracellular organelleFalseNaNNaN181.0NaNNaN10.0NaNNaNNaNNaN
19GO:0051049regulation of transportTrue19.0215GO:0043231intracellular membrane-bounded organelleFalseNaNNaN182.0NaNNaNNaNNaN
20GO:0006898receptor-mediated endocytosisTrue20.02.0216GO:0043233organelle lumenFalseNaNNaN183.0NaNNaNNaNNaN
21GO:0051050positive regulation of transportTrue21.0217GO:0070013intracellular organelle lumenFalseNaNNaN184.0NaNNaNNaNNaN
22GO:0005041low-density lipoprotein particle receptor activityTrue22.05.0218GO:0012505endomembrane systemFalseNaNNaN197.0NaNNaNNaNNaN
23GO:0030139endocytic vesicleTrue23.0219GO:0006807nitrogen compound metabolic processFalseNaNNaN203.0NaNNaNNaNNaN
24GO:0030228lipoprotein particle receptor activityTrue24.0220GO:0016567protein ubiquitinationFalseNaNNaN204.0NaNNaNNaNNaN
25GO:0030666endocytic vesicle membraneTrue25.018.0221GO:0019538protein metabolic processFalseNaNNaN205.0NaNNaNNaNNaN3.0NaNNaN
26GO:0097242amyloid-beta clearanceTrue26.022.0222GO:0032446protein modification by small protein conjugationFalseNaNNaN206.0NaNNaNNaNNaN
27GO:0051130positive regulation of cellular component organizationTrue27.0223GO:0036211protein modification processFalseNaNNaN207.0NaNNaNNaNNaN
28GO:0060907positive regulation of macrophage cytokine productionTrue28.08.0224GO:0043170macromolecule metabolic processFalseNaNNaN208.0NaNNaNNaNNaN
29GO:0032879regulation of localizationTrue29.0225GO:0043412macromolecule modificationFalseNaNNaN209.0NaNNaNNaNNaN
30GO:0048522positive regulation of cellular processTrue30.0226GO:0070647protein modification by small protein conjugation or removalFalseNaNNaN210.0NaNNaNNaNNaN
31GO:0002277myeloid dendritic cell activation involved in immune response227GO:1901564organonitrogen compound metabolic processFalse31.09.0NaNNaN211.0NaNNaNNaNNaNNaN
32GO:0030659cytoplasmic vesicle membraneTrue32.0228GO:0051179localizationFalseNaNNaN214.0NaNNaNNaNNaN
33GO:0012506vesicle membraneTrue33.0229GO:0016043cellular component organizationFalseNaNNaN224.0NaNNaNNaNNaN
34GO:0061081positive regulation of myeloid leukocyte cytokine production involved in immune responseTrue34.0230GO:0071840cellular component organization or biogenesisFalseNaNNaN233.0NaNNaNNaNNaN
35GO:0010935regulation of macrophage cytokine productionTrue35.0231GO:1901575organic substance catabolic processFalseNaNNaN248.0NaNNaNNaNNaN
36GO:0048583regulation of response to stimulus232GO:0007005mitochondrion organizationFalse36.0NaNNaN249.0NaNNaNNaNNaN
37GO:1905167positive regulation of lysosomal protein catabolic processTrue37.011.0233GO:0061024membrane organizationFalseNaNNaN251.0NaNNaNNaNNaN
38GO:0009894regulation of catabolic processTrue38.0234GO:0010256endomembrane system organizationFalseNaNNaN252.0NaNNaNNaNNaN
39GO:0023051regulation of signaling235GO:0043169cation bindingFalse39.0NaNNaN255.0NaNNaNNaNNaN
40GO:0051641cellular localizationTrue40.0NaN236GO:0046872metal ion bindingFalseNaNNaN256.0NaNNaNNaN6.0NaNNaNNaN
41GO:1904352positive regulation of protein catabolic process in the vacuoleTrue41.0237GO:0046914transition metal ion bindingFalseNaNNaN257.0NaNNaNNaNNaN
42GO:0070508cholesterol importTrue42.013.0238GO:0005215transporter activityFalseNaNNaN261.0NaNNaNNaNNaN
43GO:0031347regulation of defense responseTrue43.0239GO:0022857transmembrane transporter activityFalseNaNNaN263.0NaNNaNNaNNaN
44GO:0005794Golgi apparatus240GO:0022884macromolecule transmembrane transporter activityFalse44.014.0NaNNaN264.0NaNNaNNaNNaNNaN
45GO:1901700response to oxygen-containing compound241GO:0006662glycerol ether metabolic processFalse45.0NaNNaN266.0NaNNaNNaNNaN
46GO:0061024membrane organization242GO:0008610lipid biosynthetic processFalse46.0NaNNaN267.0NaNNaNNaNNaN
47GO:0009966regulation of signal transductionTrue47.0243GO:0009058biosynthetic processFalseNaNNaN269.0NaNNaNNaNNaN
48GO:0015031protein transportTrue48.0244GO:0018904ether metabolic processFalseNaNNaN2.0270.0NaNNaNNaNNaNNaN
49GO:0048523negative regulation of cellular process245GO:0044249cellular biosynthetic processFalse49.0NaNNaN271.0NaNNaNNaNNaN
50GO:0032429regulation of phospholipase A2 activity246GO:0046485ether lipid metabolic processFalseNaN7.0NaN272.0NaNNaNNaNNaN
51GO:0034381plasma lipoprotein particle clearance247GO:0046504glycerol ether biosynthetic processFalseNaN10.0NaN273.0NaNNaNNaNNaN
52GO:0031623receptor internalization248GO:0097384cellular lipid biosynthetic processFalseNaN12.0NaN274.0NaNNaNNaNNaN
53GO:0009931calcium-dependent protein serine/threonine kinase activity249GO:1901503ether biosynthetic processFalseNaN15.0NaN275.0NaNNaNNaNNaN
54GO:0005905clathrin-coated pit250GO:1901576organic substance biosynthetic processFalseNaN16.0NaN276.0NaNNaNNaNNaN
55GO:0032050clathrin heavy chain binding251GO:0000428DNA-directed RNA polymerase complexFalseNaN19.0NaN286.0NaNNaNNaNNaN
56GO:0030299intestinal cholesterol absorption252GO:0016591RNA polymerase II, holoenzymeFalseNaN20.0NaN287.0NaNNaNNaNNaN
57GO:0001540amyloid-beta binding253GO:0030880RNA polymerase complexFalseNaN21.0NaN288.0NaNNaNNaNNaN
58GO:0034383low-density lipoprotein particle clearance254GO:0055029nuclear DNA-directed RNA polymerase complexFalseNaN23.0NaN290.0NaNNaNNaNNaN
59GO:0032760positive regulation of tumor necrosis factor production255GO:0061695transferase complex, transferring phosphorus-containing groupsFalseNaN24.0NaN291.0NaNNaNNaNNaN
60GO:0042953lipoprotein transport256GO:0140513nuclear protein-containing complexFalseNaN25.0NaN292.0NaNNaNNaNNaN
61GO:0071404cellular response to low-density lipoprotein particle stimulus257GO:0140535intracellular protein-containing complexFalseNaN26.0NaN293.0NaNNaNNaNNaN
62GO:0030169low-density lipoprotein particle binding258GO:1902494catalytic complexFalseNaN27.0NaN294.0NaNNaNNaNNaN
63actin filament formationNone259GO:1990234transferase complexFalseNaNNaN295.0NaN0.0NaNNaNNaNNaN
64lipid and fatty acid metabolismNone260GO:0008023transcription elongation factor complexFalseNaNNaN296.0NaN4.0NaNNaNNaNNaN
65GO:0007155cell adhesion261GO:0140657ATP-dependent activityFalseNaNNaN298.0NaN6.0NaNNaNNaNNaN
66intracellular traffickingNone262GO:0003824catalytic activityFalseNaNNaN1.0299.0NaNNaNNaN2.0NaNNaNNaNNaN
67GO:0005480obsolete vesicle transport263GO:0016462pyrophosphatase activityFalseNaNNaN2.0300.0NaNNaNNaNNaN
68GO:0055085transmembrane transport264GO:0016787hydrolase activityFalseNaNNaN5.0301.0NaNNaNNaNNaN
69GO:0006893Golgi to plasma membrane transport265GO:0016817hydrolase activity, acting on acid anhydridesFalseNaNNaN6.0302.0NaNNaNNaNNaN
70protein binding activityNone266GO:0016818hydrolase activity, acting on acid anhydrides, in phosphorus-containing anhydridesFalseNaNNaN303.0NaNNaN0.0NaNNaNNaNNaN
71GO:0005886plasma membrane267GO:0017111ribonucleoside triphosphate phosphatase activityFalseNaNNaN305.0NaNNaNNaN1.0NaNNaN11.0NaNNaN
72small gtpase binding activityNone268GO:0005515protein bindingFalseNaNNaN306.0NaNNaN2.0NaNNaNNaNNaN
73GO:0043001Golgi to plasma membrane protein transport269GO:0007417central nervous system developmentFalseNaNNaN308.0NaNNaN4.0NaNNaNNaNNaN
74tyrosine kinase activityNone270GO:0007420brain developmentFalseNaNNaN309.0NaNNaN5.0NaNNaNNaNNaN
75GO:0009986cell surface271GO:0021537telencephalon developmentFalseNaNNaN310.0NaNNaN6.0NaNNaNNaNNaN
76cytoskeletal protein binding activityNone272GO:0021543pallium developmentFalseNaNNaN311.0NaNNaN7.0NaNNaNNaNNaN
77GO:0005783endoplasmic reticulum273GO:0021987cerebral cortex developmentFalseNaNNaN312.0NaNNaN8.0NaNNaNNaNNaN
78GO:0032456endocytic recycling274GO:0030900forebrain developmentFalseNaNNaN313.0NaNNaN9.0NaNNaNNaNNaN
79GO:0051260protein homooligomerization275GO:0060322head developmentFalseNaNNaN314.0NaNNaN11.0NaNNaNNaNNaN
80GO:0097320plasma membrane tubulation276GO:0021885forebrain cell migrationFalseNaNNaN316.0NaNNaN12.0NaNNaNNaNNaN
81GO:0010468regulation of gene expression277GO:0022029telencephalon cell migrationFalseNaNNaN317.0NaNNaN14.0NaNNaNNaNNaN
82GO:0048010vascular endothelial growth factor receptor signaling pathway278GO:0021953central nervous system neuron differentiationFalseNaNNaN319.0NaNNaN15.0NaNNaNNaNNaN
83GO:0007010cytoskeleton organization279GO:0030182neuron differentiationFalseNaNNaN320.0NaNNaNNaN1.0NaNNaNNaNNaN
84GO:0016197endosomal transport280GO:0060090molecular adaptor activityFalseNaNNaN322.0NaNNaNNaNNaN0.0NaNNaNNaN
85GO:0007041lysosomal transport281GO:0051020GTPase bindingFalseNaNNaN324.0NaNNaNNaNNaN2.0NaNNaNNaN
86g-protein signalling pathwayNone282GO:0043254regulation of protein-containing complex assemblyFalseNaNNaN326.0NaNNaNNaNNaNNaNNaN0.0NaN
87mapk signalling pathwayNone283GO:0044087regulation of cellular component biogenesisFalseNaNNaN327.0NaNNaNNaNNaNNaNNaN1.0NaN
88GO:0006631fatty acid metabolic process284GO:0048519negative regulation of biological processFalseNaNNaN328.0NaNNaNNaNNaNNaNNaN2.0NaN
89calcium signalling pathwayNone285GO:0048523negative regulation of cellular processFalseNaNNaN329.0NaNNaNNaNNaNNaNNaN3.0NaN
90cell membrane composition and organizationNone286GO:0050789regulation of biological processFalseNaNNaN330.0NaNNaNNaNNaNNaNNaN4.0NaN
91protein kinase signallingNone287GO:0050794regulation of cellular processFalseNaNNaN331.0NaNNaNNaNNaNNaNNaN5.0NaN
92apoptosis regulationNone288GO:0051128regulation of cellular component organizationFalseNaNNaN332.0NaNNaNNaNNaNNaNNaN6.0NaN
93GO:0140105interleukin-10-mediated signaling pathway289GO:0051129negative regulation of cellular component organizationFalseNaNNaN333.0NaNNaNNaNNaNNaNNaN0.0
94GO:0016363nuclear matrix290GO:0065007biological regulationFalseNaNNaN334.0NaNNaNNaNNaNNaNNaN1.0
95GO:0016579protein deubiquitination291GO:0031647regulation of protein stabilityFalseNaNNaN335.0NaNNaNNaNNaNNaNNaN2.0
96GO:0007626locomotory behavior292GO:0065008regulation of biological qualityFalseNaNNaN337.0NaNNaNNaNNaNNaNNaN3.0
97GO:0008427calcium-dependent protein kinase inhibitor activity293GO:0000302response to reactive oxygen speciesFalseNaNNaN340.0NaNNaNNaNNaNNaNNaN4.0
98GO:0050255ribitol 2-dehydrogenase activity294GO:0006950response to stressFalseNaNNaN341.0NaNNaNNaNNaNNaNNaN5.0
99GO:0000228nuclear chromosome295GO:0006979response to oxidative stressFalseNaNNaN342.0NaNNaNNaNNaNNaNNaN6.0
100GO:0001917photoreceptor inner segment296GO:0033554cellular response to stressFalseNaNNaN343.0NaNNaNNaNNaNNaNNaN7.0
101GO:0007165signal transduction297GO:0034599cellular response to oxidative stressFalseNaNNaN344.0NaNNaNNaNNaNNaNNaN8.0
102GO:0035578azurophil granule lumen298GO:0042221response to chemicalFalseNaNNaN346.0NaNNaNNaNNaNNaNNaN9.0
103GO:0000976transcription cis-regulatory region binding299GO:0050896response to stimulusFalseNaNNaN347.0NaNNaNNaNNaNNaNNaN10.0
104GO:0005576extracellular region300GO:0051716cellular response to stimulusFalseNaNNaN348.0NaNNaNNaNNaNNaNNaN13.0NaN11.0
105GO:0009887animal organ morphogenesis301GO:0062197cellular response to chemical stressFalseNaNNaN349.0NaNNaNNaNNaNNaNNaN12.0
106GO:0043085positive regulation of catalytic activity302GO:0070887cellular response to chemical stimulusFalseNaNNaN350.0NaNNaNNaNNaNNaNNaN13.0
107GO:0042742defense response to bacterium303GO:1901700response to oxygen-containing compoundFalseNaNNaN351.0NaNNaNNaNNaNNaNNaN14.0
108GO:0098655monoatomic cation transmembrane transport304GO:1901701cellular response to oxygen-containing compoundFalseNaNNaN352.0NaNNaNNaNNaNNaNNaN15.0
109GO:0006357regulation of transcription by RNA polymerase II305GO:0040008regulation of growthFalseNaNNaN353.0NaNNaNNaNNaNNaN0.0NaNNaN
110GO:0046872metal ion binding306GO:0040014regulation of multicellular organism growthFalseNaNNaN354.0NaNNaNNaNNaNNaN1.0NaNNaN
111GO:0016020membrane307GO:0045927positive regulation of growthFalseNaNNaN356.0NaNNaNNaNNaNNaN2.0NaNNaN
112GO:0005739mitochondrion308GO:0048518positive regulation of biological processFalseNaNNaN357.0NaNNaNNaNNaNNaN3.0NaNNaN
113GO:0003723RNA binding309GO:0048638regulation of developmental growthFalseNaNNaN358.0NaNNaNNaNNaNNaN4.0NaNNaN
114GO:0005615extracellular space310GO:0048639positive regulation of developmental growthFalseNaNNaN359.0NaNNaNNaNNaNNaN5.0NaNNaN
115GO:0005829cytosol311GO:0050793regulation of developmental processFalseNaNNaN360.0NaNNaNNaNNaNNaN6.0NaNNaN
116312GO:0051094positive regulation of developmental processFalseNaNNaN361.0NaNNaNNaNNaNNaNNaNNaN
313GO:0051239regulation of multicellular organismal processFalseNaNNaN362.0NaNNaNNaNNaNNaNNaNNaN
314GO:0051240positive regulation of multicellular organismal processFalseNaNNaN363.0NaNNaNNaNNaNNaNNaNNaN
315GO:0042802identical protein bindingFalseNaNNaN364.0NaNNaNNaNNaNNaN7.0NaNNaN
117GO:0045944positive regulation of transcription by RNA polymerase II316GO:0046983protein dimerization activityFalseNaNNaN366.0NaNNaNNaNNaNNaN8.0NaNNaN
118GO:0005524ATP binding317GO:0022411cellular component disassemblyFalseNaNNaN369.0NaNNaNNaNNaNNaNNaNNaN
318GO:0032984protein-containing complex disassemblyFalseNaNNaN370.0NaNNaNNaNNaNNaNNaNNaN
319GO:0043933protein-containing complex organizationFalseNaNNaN371.0NaNNaNNaNNaNNaNNaNNaN
320GO:0006612protein targeting to membraneFalseNaNNaN374.0NaNNaNNaNNaNNaNNaNNaN
321GO:0051668localization within membraneFalseNaNNaN376.0NaNNaNNaNNaNNaNNaNNaN
322GO:0072657protein localization to membraneFalseNaNNaN377.0NaNNaNNaNNaNNaNNaNNaN
323GO:0090150establishment of protein localization to membraneFalseNaNNaN378.0NaNNaNNaNNaNNaNNaNNaN
324GO:0008285negative regulation of cell population proliferationFalseNaNNaN379.09.0NaNNaNNaNNaNNaNNaN
119GO:0070062extracellular exosome325GO:0042127regulation of cell population proliferationFalseNaNNaN380.0NaNNaNNaNNaNNaN10.0NaNNaN
120GO:0005737cytoplasm326GO:0048145regulation of fibroblast proliferationFalseNaNNaN381.0NaNNaNNaNNaNNaN12.0NaNNaN
121GO:0005634nucleus327GO:0050678regulation of epithelial cell proliferationFalseNaNNaN384.0NaNNaNNaNNaNNaN14.0NaNNaN
122GO:0005654nucleoplasm328GO:0003008system processFalseNaNNaN387.0NaNNaNNaNNaNNaN15.0NaNNaN
\n", - "
" - ], - "text/plain": [ - " id \\\n", - "0 GO:0006907 \n", - "1 GO:0006897 \n", - "2 GO:0044351 \n", - "3 GO:0016192 \n", - "4 GO:0030100 \n", + " \n", + " 329\n", + " GO:0050877\n", + " nervous system process\n", + " False\n", + " NaN\n", + " NaN\n", + " 388.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 330\n", + " GO:0007017\n", + " microtubule-based process\n", + " False\n", + " NaN\n", + " NaN\n", + " 390.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 331\n", + " GO:0051640\n", + " organelle localization\n", + " False\n", + " NaN\n", + " NaN\n", + " 391.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 332\n", + " GO:0060151\n", + " peroxisome localization\n", + " False\n", + " NaN\n", + " NaN\n", + " 392.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 333\n", + " GO:0004842\n", + " ubiquitin-protein transferase activity\n", + " False\n", + " NaN\n", + " NaN\n", + " 394.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 334\n", + " GO:0016740\n", + " transferase activity\n", + " False\n", + " NaN\n", + " NaN\n", + " 395.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 335\n", + " GO:0016746\n", + " acyltransferase activity\n", + " False\n", + " NaN\n", + " NaN\n", + " 396.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 336\n", + " GO:0016755\n", + " aminoacyltransferase activity\n", + " False\n", + " NaN\n", + " NaN\n", + " 397.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 337\n", + " GO:0019787\n", + " ubiquitin-like protein transferase activity\n", + " False\n", + " NaN\n", + " NaN\n", + " 398.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 338\n", + " GO:0061659\n", + " ubiquitin-like protein ligase activity\n", + " False\n", + " NaN\n", + " NaN\n", + " 400.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 339\n", + " GO:0140096\n", + " catalytic activity, acting on a protein\n", + " False\n", + " NaN\n", + " NaN\n", + " 401.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 340\n", + " GO:0005576\n", + " extracellular region\n", + " False\n", + " NaN\n", + " NaN\n", + " 402.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 341\n", + " GO:0005615\n", + " extracellular space\n", + " False\n", + " NaN\n", + " NaN\n", + " 403.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 342\n", + " GO:0031982\n", + " vesicle\n", + " False\n", + " NaN\n", + " NaN\n", + " 404.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 343\n", + " GO:0043230\n", + " extracellular organelle\n", + " False\n", + " NaN\n", + " NaN\n", + " 405.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 344\n", + " GO:0065010\n", + " extracellular membrane-bounded organelle\n", + " False\n", + " NaN\n", + " NaN\n", + " 406.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 345\n", + " GO:1903561\n", + " extracellular vesicle\n", + " False\n", + " NaN\n", + " NaN\n", + " 408.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 346\n", + " GO:0140030\n", + " modification-dependent protein binding\n", + " False\n", + " NaN\n", + " NaN\n", + " 409.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 347\n", + " GO:0140104\n", + " molecular carrier activity\n", + " False\n", + " NaN\n", + " NaN\n", + " 412.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 348\n", + " GO:0009605\n", + " response to external stimulus\n", + " False\n", + " NaN\n", + " NaN\n", + " 414.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 349\n", + " GO:0009991\n", + " response to extracellular stimulus\n", + " False\n", + " NaN\n", + " NaN\n", + " 415.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 350\n", + " GO:0031667\n", + " response to nutrient levels\n", + " False\n", + " NaN\n", + " NaN\n", + " 416.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 351\n", + " GO:0042594\n", + " response to starvation\n", + " False\n", + " NaN\n", + " NaN\n", + " 417.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 352\n", + " peroxisome biogenesis\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 0.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 0.0\n", + " 0.0\n", + " NaN\n", + " \n", + " \n", + " 353\n", + " GO:0065005\n", + " protein-lipid complex assembly\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 4.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 354\n", + " GO:0065003\n", + " protein-containing complex assembly\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 5.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 355\n", + " GO:0051262\n", + " protein tetramerization\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 6.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 356\n", + " peroxisome membrane organization\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 1.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 357\n", + " protein import into peroxisome\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 2.0\n", + " 1.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 358\n", + " MONDO:0019234\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 2.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 359\n", + " peroxisomal biogenesis\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 3.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 0.0\n", + " \n", + " \n", + " 360\n", + " protein-lipid complex formation\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 4.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 361\n", + " peroxisomal targeting signal\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 1.0\n", + " NaN\n", + " \n", + " \n", + " 362\n", + " peroxins\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 2.0\n", + " NaN\n", + " \n", + " \n", + " 363\n", + " peroxisomal matrix proteins import\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 3.0\n", + " NaN\n", + " \n", + " \n", + " 364\n", + " mitochondrial metabolism\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 2.0\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 365\n", + " cellular transport\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 4.0\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 366\n", + " devlopment of membrane structures\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 5.0\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 367\n", + " cell membrane homeostasis\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 6.0\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 368\n", + " dna and rna processing\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 7.0\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 369\n", + " mitochondrial crop assembly\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 8.0\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " 370\n", + " peroxisomal protein import\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 1.0\n", + " \n", + " \n", + " 371\n", + " membrane vesicle assembly\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 2.0\n", + " \n", + " \n", + " 372\n", + " c-terminal tripeptide peroxisomal targeting signal binding\n", + " None\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 3.0\n", + " \n", + " \n", + " 373\n", + " GO:0005886\n", + " plasma membrane\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " 5.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + "\n", + "" + ], + "text/plain": [ + " id \\\n", + "0 GO:0006625 \n", + "1 GO:0072663 \n", + "2 GO:0072662 \n", + "3 GO:0015919 \n", + "4 GO:0043574 \n", + "5 GO:0007031 \n", + "6 GO:0016558 \n", + "7 GO:0005778 \n", + "8 GO:0031903 \n", + "9 GO:0016562 \n", + "10 GO:0044743 \n", + "11 GO:0005777 \n", + "12 GO:0042579 \n", + "13 GO:0065002 \n", + "14 GO:0071806 \n", + "15 GO:0006605 \n", + "16 GO:0001881 \n", + "17 GO:0072594 \n", + "18 GO:0043112 \n", + "19 GO:0006886 \n", + "20 GO:0033365 \n", + "21 GO:0015031 \n", + "22 GO:0045184 \n", + "23 GO:0046907 \n", + "24 GO:0140318 \n", + "25 GO:0071705 \n", + "26 GO:0006635 \n", + "27 GO:0051649 \n", + "28 GO:0044721 \n", + "29 GO:0000268 \n", + "30 GO:0043335 \n", + "31 GO:0008104 \n", + "32 GO:0070727 \n", + "33 GO:0045046 \n", + "34 GO:0000425 \n", + "35 GO:0019395 \n", + "36 GO:0034440 \n", + "37 GO:0098588 \n", + "38 GO:0009062 \n", + "39 GO:0071702 \n", + "40 GO:0033036 \n", + "41 GO:0030242 \n", + "42 GO:0072329 \n", + "43 GO:0051641 \n", + "44 GO:0055085 \n", + "45 GO:0140036 \n", + "46 GO:0006996 \n", + "47 GO:0140035 \n", + "48 GO:0030258 \n", + "49 GO:0044242 \n", + "50 GO:0046395 \n", + "51 GO:0016054 \n", + "52 GO:0000038 \n", + "53 GO:0031090 \n", + "54 GO:0006810 \n", + "55 GO:0016042 \n", + "56 GO:0051234 \n", + "57 GO:0006631 \n", + "58 GO:0005048 \n", + "59 GO:0005782 \n", + "60 GO:0031907 \n", + "61 GO:0044282 \n", + "62 GO:0034614 \n", + "63 GO:0001764 \n", + "64 GO:0033328 \n", + "65 GO:0032994 \n", + "66 GO:0005052 \n", + "67 GO:0060152 \n", + "68 GO:0005053 \n", + "69 GO:0005829 \n", + "70 GO:0032991 \n", + "71 GO:0050680 \n", + "72 GO:0031648 \n", + "73 GO:0019899 \n", + "74 GO:0008611 \n", + "75 GO:0048468 \n", + "76 GO:0070062 \n", + "77 GO:0044183 \n", + "78 GO:0040018 \n", + "79 GO:0140597 \n", + "80 GO:0030674 \n", + "81 GO:0016561 \n", + "82 GO:0005654 \n", + "83 GO:0005737 \n", + "84 GO:0050821 \n", + "85 GO:0008289 \n", + "86 GO:0021795 \n", + "87 GO:0031333 \n", + "88 GO:0001958 \n", + "89 GO:0016560 \n", + "90 GO:0005524 \n", + "91 GO:0061630 \n", + "92 GO:0016887 \n", + "93 GO:0007006 \n", + "94 GO:0008270 \n", + "95 GO:0097733 \n", + "96 GO:0007029 \n", + "97 GO:0005783 \n", + "98 GO:1990928 \n", + "99 GO:0042803 \n", + "100 GO:0016593 \n", + "101 GO:0048147 \n", + "102 GO:0044877 \n", + "103 GO:0008320 \n", + "104 GO:0005739 \n", + "105 GO:0005794 \n", + "106 GO:0001750 \n", + "107 GO:0016020 \n", + "108 GO:0006513 \n", + "109 GO:0006457 \n", + "110 GO:0021895 \n", + "111 GO:0050905 \n", + "112 GO:0031267 \n", + "113 BFO:0000003 \n", + "114 BFO:0000015 \n", + "115 GO:0006082 \n", + "116 GO:0006629 \n", + "117 GO:0008150 \n", + "118 GO:0008152 \n", + "119 GO:0009987 \n", + "120 GO:0019752 \n", + "121 GO:0032787 \n", + "122 GO:0043436 \n", + "123 GO:0044237 \n", + "124 GO:0044238 \n", + "125 GO:0044255 \n", + "126 GO:0044281 \n", + "127 GO:0071704 \n", + "128 GO:0003674 \n", + "129 GO:0005488 \n", + "130 GO:0033218 \n", + "131 GO:0042277 \n", + "132 GO:0006914 \n", + "133 GO:0009056 \n", + "134 GO:0016236 \n", + "135 GO:0044248 \n", + "136 GO:0061912 \n", + "137 GO:0061919 \n", + "138 BFO:0000002 \n", + "139 BFO:0000004 \n", + "140 BFO:0000040 \n", + "141 CARO:0000000 \n", + "142 CARO:0000003 \n", + "143 CARO:0000006 \n", + "144 CARO:0030000 \n", + "145 CL:0000000 \n", + "146 CL:0000003 \n", + "147 CL:0000006 \n", + "148 CL:0000101 \n", + "149 CL:0000197 \n", + "150 CL:0000210 \n", + "151 CL:0000211 \n", + "152 CL:0000255 \n", + "153 CL:0000393 \n", + "154 CL:0000404 \n", + "155 CL:0000526 \n", + "156 CL:0000540 \n", + "157 CL:0000548 \n", + "158 CL:0002319 \n", + "159 CL:0002371 \n", + "160 GO:0005575 \n", + "161 GO:0005929 \n", + "162 GO:0042995 \n", + "163 GO:0043005 \n", + "164 GO:0043226 \n", + "165 GO:0043227 \n", + "166 GO:0097730 \n", + "167 GO:0097731 \n", + "168 GO:0110165 \n", + "169 GO:0120025 \n", + "170 PR:000050567 \n", + "171 UBERON:0000061 \n", + "172 UBERON:0000465 \n", + "173 UBERON:0001062 \n", + "174 GO:0007275 \n", + "175 GO:0007399 \n", + "176 GO:0022008 \n", + "177 GO:0030154 \n", + "178 GO:0032501 \n", + "179 GO:0032502 \n", + "180 GO:0048699 \n", + "181 GO:0048731 \n", + "182 GO:0048856 \n", + "183 GO:0048869 \n", + "184 GO:0016477 \n", + "185 GO:0048870 \n", + "186 GO:0001501 \n", + "187 GO:0009653 \n", + "188 GO:0009887 \n", + "189 GO:0048513 \n", + "190 GO:0048705 \n", + "191 GO:0060348 \n", + "192 GO:0060349 \n", + "193 GO:0060350 \n", + "194 GO:0001503 \n", + "195 GO:0036075 \n", + "196 GO:0000166 \n", + "197 GO:0017076 \n", + "198 GO:0030554 \n", + "199 GO:0032553 \n", + "200 GO:0032555 \n", + "201 GO:0032559 \n", + "202 GO:0035639 \n", + "203 GO:0036094 \n", + "204 GO:0043167 \n", + "205 GO:0043168 \n", + "206 GO:0097159 \n", + "207 GO:0097367 \n", + "208 GO:1901265 \n", + "209 GO:1901363 \n", + "210 GO:0005622 \n", + "211 GO:0005634 \n", + "212 GO:0031974 \n", + "213 GO:0031981 \n", + "214 GO:0043229 \n", + "215 GO:0043231 \n", + "216 GO:0043233 \n", + "217 GO:0070013 \n", + "218 GO:0012505 \n", + "219 GO:0006807 \n", + "220 GO:0016567 \n", + "221 GO:0019538 \n", + "222 GO:0032446 \n", + "223 GO:0036211 \n", + "224 GO:0043170 \n", + "225 GO:0043412 \n", + "226 GO:0070647 \n", + "227 GO:1901564 \n", + "228 GO:0051179 \n", + "229 GO:0016043 \n", + "230 GO:0071840 \n", + "231 GO:1901575 \n", + "232 GO:0007005 \n", + "233 GO:0061024 \n", + "234 GO:0010256 \n", + "235 GO:0043169 \n", + "236 GO:0046872 \n", + "237 GO:0046914 \n", + "238 GO:0005215 \n", + "239 GO:0022857 \n", + "240 GO:0022884 \n", + "241 GO:0006662 \n", + "242 GO:0008610 \n", + "243 GO:0009058 \n", + "244 GO:0018904 \n", + "245 GO:0044249 \n", + "246 GO:0046485 \n", + "247 GO:0046504 \n", + "248 GO:0097384 \n", + "249 GO:1901503 \n", + "250 GO:1901576 \n", + "251 GO:0000428 \n", + "252 GO:0016591 \n", + "253 GO:0030880 \n", + "254 GO:0055029 \n", + "255 GO:0061695 \n", + "256 GO:0140513 \n", + "257 GO:0140535 \n", + "258 GO:1902494 \n", + "259 GO:1990234 \n", + "260 GO:0008023 \n", + "261 GO:0140657 \n", + "262 GO:0003824 \n", + "263 GO:0016462 \n", + "264 GO:0016787 \n", + "265 GO:0016817 \n", + "266 GO:0016818 \n", + "267 GO:0017111 \n", + "268 GO:0005515 \n", + "269 GO:0007417 \n", + "270 GO:0007420 \n", + "271 GO:0021537 \n", + "272 GO:0021543 \n", + "273 GO:0021987 \n", + "274 GO:0030900 \n", + "275 GO:0060322 \n", + "276 GO:0021885 \n", + "277 GO:0022029 \n", + "278 GO:0021953 \n", + "279 GO:0030182 \n", + "280 GO:0060090 \n", + "281 GO:0051020 \n", + "282 GO:0043254 \n", + "283 GO:0044087 \n", + "284 GO:0048519 \n", + "285 GO:0048523 \n", + "286 GO:0050789 \n", + "287 GO:0050794 \n", + "288 GO:0051128 \n", + "289 GO:0051129 \n", + "290 GO:0065007 \n", + "291 GO:0031647 \n", + "292 GO:0065008 \n", + "293 GO:0000302 \n", + "294 GO:0006950 \n", + "295 GO:0006979 \n", + "296 GO:0033554 \n", + "297 GO:0034599 \n", + "298 GO:0042221 \n", + "299 GO:0050896 \n", + "300 GO:0051716 \n", + "301 GO:0062197 \n", + "302 GO:0070887 \n", + "303 GO:1901700 \n", + "304 GO:1901701 \n", + "305 GO:0040008 \n", + "306 GO:0040014 \n", + "307 GO:0045927 \n", + "308 GO:0048518 \n", + "309 GO:0048638 \n", + "310 GO:0048639 \n", + "311 GO:0050793 \n", + "312 GO:0051094 \n", + "313 GO:0051239 \n", + "314 GO:0051240 \n", + "315 GO:0042802 \n", + "316 GO:0046983 \n", + "317 GO:0022411 \n", + "318 GO:0032984 \n", + "319 GO:0043933 \n", + "320 GO:0006612 \n", + "321 GO:0051668 \n", + "322 GO:0072657 \n", + "323 GO:0090150 \n", + "324 GO:0008285 \n", + "325 GO:0042127 \n", + "326 GO:0048145 \n", + "327 GO:0050678 \n", + "328 GO:0003008 \n", + "329 GO:0050877 \n", + "330 GO:0007017 \n", + "331 GO:0051640 \n", + "332 GO:0060151 \n", + "333 GO:0004842 \n", + "334 GO:0016740 \n", + "335 GO:0016746 \n", + "336 GO:0016755 \n", + "337 GO:0019787 \n", + "338 GO:0061659 \n", + "339 GO:0140096 \n", + "340 GO:0005576 \n", + "341 GO:0005615 \n", + "342 GO:0031982 \n", + "343 GO:0043230 \n", + "344 GO:0065010 \n", + "345 GO:1903561 \n", + "346 GO:0140030 \n", + "347 GO:0140104 \n", + "348 GO:0009605 \n", + "349 GO:0009991 \n", + "350 GO:0031667 \n", + "351 GO:0042594 \n", + "352 peroxisome biogenesis \n", + "353 GO:0065005 \n", + "354 GO:0065003 \n", + "355 GO:0051262 \n", + "356 peroxisome membrane organization \n", + "357 protein import into peroxisome \n", + "358 MONDO:0019234 \n", + "359 peroxisomal biogenesis \n", + "360 protein-lipid complex formation \n", + "361 peroxisomal targeting signal \n", + "362 peroxins \n", + "363 peroxisomal matrix proteins import \n", + "364 mitochondrial metabolism \n", + "365 cellular transport \n", + "366 devlopment of membrane structures \n", + "367 cell membrane homeostasis \n", + "368 dna and rna processing \n", + "369 mitochondrial crop assembly \n", + "370 peroxisomal protein import \n", + "371 membrane vesicle assembly \n", + "372 c-terminal tripeptide peroxisomal targeting signal binding \n", + "373 GO:0005886 \n", + "\n", + " label \\\n", + "0 protein targeting to peroxisome \n", + "1 establishment of protein localization to peroxisome \n", + "2 protein localization to peroxisome \n", + "3 peroxisomal membrane transport \n", + "4 peroxisomal transport \n", + "5 peroxisome organization \n", + "6 protein import into peroxisome matrix \n", + "7 peroxisomal membrane \n", + "8 microbody membrane \n", + "9 protein import into peroxisome matrix, receptor recycling \n", + "10 protein transmembrane import into intracellular organelle \n", + "11 peroxisome \n", + "12 microbody \n", + "13 intracellular protein transmembrane transport \n", + "14 protein transmembrane transport \n", + "15 protein targeting \n", + "16 receptor recycling \n", + "17 establishment of protein localization to organelle \n", + "18 receptor metabolic process \n", + "19 intracellular protein transport \n", + "20 protein localization to organelle \n", + "21 protein transport \n", + "22 establishment of protein localization \n", + "23 intracellular transport \n", + "24 protein transporter activity \n", + "25 nitrogen compound transport \n", + "26 fatty acid beta-oxidation \n", + "27 establishment of localization in cell \n", + "28 protein import into peroxisome matrix, substrate release \n", + "29 peroxisome targeting sequence binding \n", + "30 protein unfolding \n", + "31 protein localization \n", + "32 cellular macromolecule localization \n", + "33 protein import into peroxisome membrane \n", + "34 pexophagy \n", + "35 fatty acid oxidation \n", + "36 lipid oxidation \n", + "37 bounding membrane of organelle \n", + "38 fatty acid catabolic process \n", + "39 organic substance transport \n", + "40 macromolecule localization \n", + "41 autophagy of peroxisome \n", + "42 monocarboxylic acid catabolic process \n", + "43 cellular localization \n", + "44 transmembrane transport \n", + "45 ubiquitin-dependent protein binding \n", + "46 organelle organization \n", + "47 ubiquitination-like modification-dependent protein binding \n", + "48 lipid modification \n", + "49 cellular lipid catabolic process \n", + "50 carboxylic acid catabolic process \n", + "51 organic acid catabolic process \n", + "52 very long-chain fatty acid metabolic process \n", + "53 organelle membrane \n", + "54 transport \n", + "55 lipid catabolic process \n", + "56 establishment of localization \n", + "57 fatty acid metabolic process \n", + "58 signal sequence binding \n", + "59 peroxisomal matrix \n", + "60 microbody lumen \n", + "61 small molecule catabolic process \n", + "62 cellular response to reactive oxygen species \n", + "63 neuron migration \n", + "64 peroxisome membrane targeting sequence binding \n", + "65 protein-lipid complex \n", + "66 peroxisome matrix targeting signal-1 binding \n", + "67 microtubule-based peroxisome localization \n", + "68 peroxisome matrix targeting signal-2 binding \n", + "69 cytosol \n", + "70 protein-containing complex \n", + "71 negative regulation of epithelial cell proliferation \n", + "72 protein destabilization \n", + "73 enzyme binding \n", + "74 ether lipid biosynthetic process \n", + "75 cell development \n", + "76 extracellular exosome \n", + "77 protein folding chaperone \n", + "78 positive regulation of multicellular organism growth \n", + "79 protein carrier chaperone \n", + "80 protein-macromolecule adaptor activity \n", + "81 protein import into peroxisome matrix, translocation \n", + "82 nucleoplasm \n", + "83 cytoplasm \n", + "84 protein stabilization \n", + "85 lipid binding \n", + "86 cerebral cortex cell migration \n", + "87 negative regulation of protein-containing complex assembly \n", + "88 endochondral ossification \n", + "89 protein import into peroxisome matrix, docking \n", + "90 ATP binding \n", + "91 ubiquitin protein ligase activity \n", + "92 ATP hydrolysis activity \n", + "93 mitochondrial membrane organization \n", + "94 zinc ion binding \n", + "95 photoreceptor cell cilium \n", + "96 endoplasmic reticulum organization \n", + "97 endoplasmic reticulum \n", + "98 response to amino acid starvation \n", + "99 protein homodimerization activity \n", + "100 Cdc73/Paf1 complex \n", + "101 negative regulation of fibroblast proliferation \n", + "102 protein-containing complex binding \n", + "103 protein transmembrane transporter activity \n", + "104 mitochondrion \n", + "105 Golgi apparatus \n", + "106 photoreceptor outer segment \n", + "107 membrane \n", + "108 protein monoubiquitination \n", + "109 protein folding \n", + "110 cerebral cortex neuron differentiation \n", + "111 neuromuscular process \n", + "112 small GTPase binding \n", + "113 occurrent \n", + "114 process \n", + "115 organic acid metabolic process \n", + "116 lipid metabolic process \n", + "117 biological_process \n", + "118 metabolic process \n", + "119 cellular process \n", + "120 carboxylic acid metabolic process \n", + "121 monocarboxylic acid metabolic process \n", + "122 oxoacid metabolic process \n", + "123 cellular metabolic process \n", + "124 primary metabolic process \n", + "125 cellular lipid metabolic process \n", + "126 small molecule metabolic process \n", + "127 organic substance metabolic process \n", + "128 molecular_function \n", + "129 binding \n", + "130 amide binding \n", + "131 peptide binding \n", + "132 autophagy \n", + "133 catabolic process \n", + "134 macroautophagy \n", + "135 cellular catabolic process \n", + "136 selective autophagy \n", + "137 process utilizing autophagic mechanism \n", + "138 continuant \n", + "139 independent continuant \n", + "140 material entity \n", + "141 anatomical entity \n", + "142 connected anatomical structure \n", + "143 material anatomical entity \n", + "144 biological entity \n", + "145 cell \n", + "146 native cell \n", + "147 neuronal receptor cell \n", + "148 sensory neuron \n", + "149 sensory receptor cell \n", + "150 photoreceptor cell \n", + "151 electrically active cell \n", + "152 eukaryotic cell \n", + "153 electrically responsive cell \n", + "154 electrically signaling cell \n", + "155 afferent neuron \n", + "156 neuron \n", + "157 animal cell \n", + "158 neural cell \n", + "159 somatic cell \n", + "160 cellular_component \n", + "161 cilium \n", + "162 cell projection \n", + "163 neuron projection \n", + "164 organelle \n", + "165 membrane-bounded organelle \n", + "166 non-motile cilium \n", + "167 9+0 non-motile cilium \n", + "168 cellular anatomical entity \n", + "169 plasma membrane bounded cell projection \n", + "170 protein-containing material entity \n", + "171 anatomical structure \n", + "172 material anatomical entity \n", + "173 anatomical entity \n", + "174 multicellular organism development \n", + "175 nervous system development \n", + "176 neurogenesis \n", + "177 cell differentiation \n", + "178 multicellular organismal process \n", + "179 developmental process \n", + "180 generation of neurons \n", + "181 system development \n", + "182 anatomical structure development \n", + "183 cellular developmental process \n", + "184 cell migration \n", + "185 cell motility \n", + "186 skeletal system development \n", + "187 anatomical structure morphogenesis \n", + "188 animal organ morphogenesis \n", + "189 animal organ development \n", + "190 skeletal system morphogenesis \n", + "191 bone development \n", + "192 bone morphogenesis \n", + "193 endochondral bone morphogenesis \n", + "194 ossification \n", + "195 replacement ossification \n", + "196 nucleotide binding \n", + "197 purine nucleotide binding \n", + "198 adenyl nucleotide binding \n", + "199 ribonucleotide binding \n", + "200 purine ribonucleotide binding \n", + "201 adenyl ribonucleotide binding \n", + "202 purine ribonucleoside triphosphate binding \n", + "203 small molecule binding \n", + "204 ion binding \n", + "205 anion binding \n", + "206 organic cyclic compound binding \n", + "207 carbohydrate derivative binding \n", + "208 nucleoside phosphate binding \n", + "209 heterocyclic compound binding \n", + "210 intracellular anatomical structure \n", + "211 nucleus \n", + "212 membrane-enclosed lumen \n", + "213 nuclear lumen \n", + "214 intracellular organelle \n", + "215 intracellular membrane-bounded organelle \n", + "216 organelle lumen \n", + "217 intracellular organelle lumen \n", + "218 endomembrane system \n", + "219 nitrogen compound metabolic process \n", + "220 protein ubiquitination \n", + "221 protein metabolic process \n", + "222 protein modification by small protein conjugation \n", + "223 protein modification process \n", + "224 macromolecule metabolic process \n", + "225 macromolecule modification \n", + "226 protein modification by small protein conjugation or removal \n", + "227 organonitrogen compound metabolic process \n", + "228 localization \n", + "229 cellular component organization \n", + "230 cellular component organization or biogenesis \n", + "231 organic substance catabolic process \n", + "232 mitochondrion organization \n", + "233 membrane organization \n", + "234 endomembrane system organization \n", + "235 cation binding \n", + "236 metal ion binding \n", + "237 transition metal ion binding \n", + "238 transporter activity \n", + "239 transmembrane transporter activity \n", + "240 macromolecule transmembrane transporter activity \n", + "241 glycerol ether metabolic process \n", + "242 lipid biosynthetic process \n", + "243 biosynthetic process \n", + "244 ether metabolic process \n", + "245 cellular biosynthetic process \n", + "246 ether lipid metabolic process \n", + "247 glycerol ether biosynthetic process \n", + "248 cellular lipid biosynthetic process \n", + "249 ether biosynthetic process \n", + "250 organic substance biosynthetic process \n", + "251 DNA-directed RNA polymerase complex \n", + "252 RNA polymerase II, holoenzyme \n", + "253 RNA polymerase complex \n", + "254 nuclear DNA-directed RNA polymerase complex \n", + "255 transferase complex, transferring phosphorus-containing groups \n", + "256 nuclear protein-containing complex \n", + "257 intracellular protein-containing complex \n", + "258 catalytic complex \n", + "259 transferase complex \n", + "260 transcription elongation factor complex \n", + "261 ATP-dependent activity \n", + "262 catalytic activity \n", + "263 pyrophosphatase activity \n", + "264 hydrolase activity \n", + "265 hydrolase activity, acting on acid anhydrides \n", + "266 hydrolase activity, acting on acid anhydrides, in phosphorus-containing anhydrides \n", + "267 ribonucleoside triphosphate phosphatase activity \n", + "268 protein binding \n", + "269 central nervous system development \n", + "270 brain development \n", + "271 telencephalon development \n", + "272 pallium development \n", + "273 cerebral cortex development \n", + "274 forebrain development \n", + "275 head development \n", + "276 forebrain cell migration \n", + "277 telencephalon cell migration \n", + "278 central nervous system neuron differentiation \n", + "279 neuron differentiation \n", + "280 molecular adaptor activity \n", + "281 GTPase binding \n", + "282 regulation of protein-containing complex assembly \n", + "283 regulation of cellular component biogenesis \n", + "284 negative regulation of biological process \n", + "285 negative regulation of cellular process \n", + "286 regulation of biological process \n", + "287 regulation of cellular process \n", + "288 regulation of cellular component organization \n", + "289 negative regulation of cellular component organization \n", + "290 biological regulation \n", + "291 regulation of protein stability \n", + "292 regulation of biological quality \n", + "293 response to reactive oxygen species \n", + "294 response to stress \n", + "295 response to oxidative stress \n", + "296 cellular response to stress \n", + "297 cellular response to oxidative stress \n", + "298 response to chemical \n", + "299 response to stimulus \n", + "300 cellular response to stimulus \n", + "301 cellular response to chemical stress \n", + "302 cellular response to chemical stimulus \n", + "303 response to oxygen-containing compound \n", + "304 cellular response to oxygen-containing compound \n", + "305 regulation of growth \n", + "306 regulation of multicellular organism growth \n", + "307 positive regulation of growth \n", + "308 positive regulation of biological process \n", + "309 regulation of developmental growth \n", + "310 positive regulation of developmental growth \n", + "311 regulation of developmental process \n", + "312 positive regulation of developmental process \n", + "313 regulation of multicellular organismal process \n", + "314 positive regulation of multicellular organismal process \n", + "315 identical protein binding \n", + "316 protein dimerization activity \n", + "317 cellular component disassembly \n", + "318 protein-containing complex disassembly \n", + "319 protein-containing complex organization \n", + "320 protein targeting to membrane \n", + "321 localization within membrane \n", + "322 protein localization to membrane \n", + "323 establishment of protein localization to membrane \n", + "324 negative regulation of cell population proliferation \n", + "325 regulation of cell population proliferation \n", + "326 regulation of fibroblast proliferation \n", + "327 regulation of epithelial cell proliferation \n", + "328 system process \n", + "329 nervous system process \n", + "330 microtubule-based process \n", + "331 organelle localization \n", + "332 peroxisome localization \n", + "333 ubiquitin-protein transferase activity \n", + "334 transferase activity \n", + "335 acyltransferase activity \n", + "336 aminoacyltransferase activity \n", + "337 ubiquitin-like protein transferase activity \n", + "338 ubiquitin-like protein ligase activity \n", + "339 catalytic activity, acting on a protein \n", + "340 extracellular region \n", + "341 extracellular space \n", + "342 vesicle \n", + "343 extracellular organelle \n", + "344 extracellular membrane-bounded organelle \n", + "345 extracellular vesicle \n", + "346 modification-dependent protein binding \n", + "347 molecular carrier activity \n", + "348 response to external stimulus \n", + "349 response to extracellular stimulus \n", + "350 response to nutrient levels \n", + "351 response to starvation \n", + "352 None \n", + "353 protein-lipid complex assembly \n", + "354 protein-containing complex assembly \n", + "355 protein tetramerization \n", + "356 None \n", + "357 None \n", + "358 None \n", + "359 None \n", + "360 None \n", + "361 None \n", + "362 None \n", + "363 None \n", + "364 None \n", + "365 None \n", + "366 None \n", + "367 None \n", + "368 None \n", + "369 None \n", + "370 None \n", + "371 None \n", + "372 None \n", + "373 plasma membrane \n", + "\n", + " redundant standard standard no ontology None \\\n", + "0 False 0.0 10.0 218.0 \n", + "1 True 1.0 NaN 236.0 \n", + "2 True 2.0 NaN 235.0 \n", + "3 False 3.0 NaN 277.0 \n", + "4 True 4.0 NaN 226.0 \n", + "5 True 5.0 2.0 222.0 \n", + "6 True 6.0 0.0 278.0 \n", + "7 False 7.0 1.0 190.0 \n", + "8 True 8.0 NaN 193.0 \n", + "9 True 9.0 3.0 284.0 \n", + "10 True 10.0 NaN 279.0 \n", + "11 True 11.0 4.0 188.0 \n", + "12 True 12.0 NaN 189.0 \n", + "13 True 13.0 NaN 280.0 \n", + "14 True 14.0 NaN 260.0 \n", + "15 True 15.0 NaN 217.0 \n", + "16 True 16.0 NaN 283.0 \n", + "17 True 17.0 NaN 234.0 \n", + "18 True 18.0 NaN 285.0 \n", + "19 True 19.0 NaN 220.0 \n", + "20 True 20.0 NaN 225.0 \n", + "21 True 21.0 NaN 223.0 \n", + "22 True 22.0 NaN 227.0 \n", + "23 True 23.0 NaN 228.0 \n", + "24 False 24.0 11.0 265.0 \n", + "25 True 25.0 NaN 232.0 \n", + "26 False 26.0 5.0 237.0 \n", + "27 True 27.0 NaN 230.0 \n", + "28 True 28.0 7.0 372.0 \n", + "29 False 29.0 NaN 84.0 \n", + "30 False 30.0 6.0 367.0 \n", + "31 True 31.0 NaN 212.0 \n", + "32 True 32.0 NaN 216.0 \n", + "33 True 33.0 9.0 375.0 \n", + "34 False 34.0 8.0 90.0 \n", + "35 True 35.0 NaN 241.0 \n", + "36 True 36.0 NaN 243.0 \n", + "37 True 37.0 NaN 194.0 \n", + "38 True 38.0 NaN 238.0 \n", + "39 True 39.0 NaN 231.0 \n", + "40 True 40.0 NaN 213.0 \n", + "41 True 41.0 NaN 94.0 \n", + "42 True 42.0 NaN 247.0 \n", + "43 True 43.0 NaN 215.0 \n", + "44 True 44.0 NaN 259.0 \n", + "45 False 45.0 12.0 411.0 \n", + "46 True 46.0 NaN 221.0 \n", + "47 True 47.0 NaN 410.0 \n", + "48 True 48.0 NaN 242.0 \n", + "49 True 49.0 NaN 244.0 \n", + "50 True 50.0 NaN 246.0 \n", + "51 True 51.0 NaN 240.0 \n", + "52 False 52.0 13.0 69.0 \n", + "53 True 53.0 NaN 192.0 \n", + "54 True 54.0 NaN 219.0 \n", + "55 True 55.0 NaN 239.0 \n", + "56 True 56.0 NaN 229.0 \n", + "57 True 57.0 NaN 72.0 \n", + "58 True 58.0 NaN 86.0 \n", + "59 True 59.0 15.0 195.0 \n", + "60 True 60.0 NaN 196.0 \n", + "61 True 61.0 NaN 245.0 \n", + "62 False NaN 14.0 345.0 \n", + "63 False NaN 16.0 146.0 \n", + "64 False NaN 17.0 339.0 \n", + "65 False NaN 18.0 338.0 \n", + "66 False NaN 19.0 160.0 \n", + "67 False NaN 20.0 393.0 \n", + "68 False NaN NaN 161.0 \n", + "69 False NaN NaN 200.0 \n", + "70 False NaN NaN 289.0 \n", + "71 False NaN NaN 385.0 \n", + "72 False NaN NaN 336.0 \n", + "73 False NaN NaN 307.0 \n", + "74 False NaN NaN 268.0 \n", + "75 False NaN NaN 383.0 \n", + "76 False NaN NaN 407.0 \n", + "77 False NaN NaN 368.0 \n", + "78 False NaN NaN 355.0 \n", + "79 False NaN NaN 413.0 \n", + "80 False NaN NaN 321.0 \n", + "81 False NaN NaN 282.0 \n", + "82 False NaN NaN 185.0 \n", + "83 False NaN NaN 186.0 \n", + "84 False NaN NaN 386.0 \n", + "85 False NaN NaN 258.0 \n", + "86 False NaN NaN 315.0 \n", + "87 False NaN NaN 325.0 \n", + "88 False NaN NaN 158.0 \n", + "89 False NaN NaN 281.0 \n", + "90 False NaN NaN 163.0 \n", + "91 False NaN NaN 399.0 \n", + "92 False NaN NaN 304.0 \n", + "93 False NaN NaN 250.0 \n", + "94 False NaN NaN 254.0 \n", + "95 False NaN NaN 128.0 \n", + "96 False NaN NaN 253.0 \n", + "97 False NaN NaN 198.0 \n", + "98 False NaN NaN 418.0 \n", + "99 False NaN NaN 365.0 \n", + "100 False NaN NaN 297.0 \n", + "101 False NaN NaN 382.0 \n", + "102 False NaN NaN 373.0 \n", + "103 False NaN NaN 262.0 \n", + "104 False NaN NaN 187.0 \n", + "105 False NaN NaN 199.0 \n", + "106 False NaN NaN 135.0 \n", + "107 False NaN NaN 191.0 \n", + "108 False NaN NaN 202.0 \n", + "109 False NaN NaN 201.0 \n", + "110 False NaN NaN 318.0 \n", + "111 False NaN NaN 389.0 \n", + "112 False NaN NaN 323.0 \n", + "113 False NaN NaN 67.0 \n", + "114 False NaN NaN 68.0 \n", + "115 False NaN NaN 70.0 \n", + "116 False NaN NaN 71.0 \n", + "117 False NaN NaN 73.0 \n", + "118 False NaN NaN 74.0 \n", + "119 False NaN NaN 75.0 \n", + "120 False NaN NaN 76.0 \n", + "121 False NaN NaN 77.0 \n", + "122 False NaN NaN 78.0 \n", + "123 False NaN NaN 79.0 \n", + "124 False NaN NaN 80.0 \n", + "125 False NaN NaN 81.0 \n", + "126 False NaN NaN 82.0 \n", + "127 False NaN NaN 83.0 \n", + "128 False NaN NaN 85.0 \n", + "129 False NaN NaN 87.0 \n", + "130 False NaN NaN 88.0 \n", + "131 False NaN NaN 89.0 \n", + "132 False NaN NaN 91.0 \n", + "133 False NaN NaN 92.0 \n", + "134 False NaN NaN 93.0 \n", + "135 False NaN NaN 95.0 \n", + "136 False NaN NaN 96.0 \n", + "137 False NaN NaN 97.0 \n", + "138 False NaN NaN 98.0 \n", + "139 False NaN NaN 99.0 \n", + "140 False NaN NaN 100.0 \n", + "141 False NaN NaN 101.0 \n", + "142 False NaN NaN 102.0 \n", + "143 False NaN NaN 103.0 \n", + "144 False NaN NaN 104.0 \n", + "145 False NaN NaN 105.0 \n", + "146 False NaN NaN 106.0 \n", + "147 False NaN NaN 107.0 \n", + "148 False NaN NaN 108.0 \n", + "149 False NaN NaN 109.0 \n", + "150 False NaN NaN 110.0 \n", + "151 False NaN NaN 111.0 \n", + "152 False NaN NaN 112.0 \n", + "153 False NaN NaN 113.0 \n", + "154 False NaN NaN 114.0 \n", + "155 False NaN NaN 115.0 \n", + "156 False NaN NaN 116.0 \n", + "157 False NaN NaN 117.0 \n", + "158 False NaN NaN 118.0 \n", + "159 False NaN NaN 119.0 \n", + "160 False NaN NaN 120.0 \n", + "161 False NaN NaN 121.0 \n", + "162 False NaN NaN 122.0 \n", + "163 False NaN NaN 123.0 \n", + "164 False NaN NaN 124.0 \n", + "165 False NaN NaN 125.0 \n", + "166 False NaN NaN 126.0 \n", + "167 False NaN NaN 127.0 \n", + "168 False NaN NaN 129.0 \n", + "169 False NaN NaN 130.0 \n", + "170 False NaN NaN 131.0 \n", + "171 False NaN NaN 132.0 \n", + "172 False NaN NaN 133.0 \n", + "173 False NaN NaN 134.0 \n", + "174 False NaN NaN 136.0 \n", + "175 False NaN NaN 137.0 \n", + "176 False NaN NaN 138.0 \n", + "177 False NaN NaN 139.0 \n", + "178 False NaN NaN 140.0 \n", + "179 False NaN NaN 141.0 \n", + "180 False NaN NaN 142.0 \n", + "181 False NaN NaN 143.0 \n", + "182 False NaN NaN 144.0 \n", + "183 False NaN NaN 145.0 \n", + "184 False NaN NaN 147.0 \n", + "185 False NaN NaN 148.0 \n", + "186 False NaN NaN 149.0 \n", + "187 False NaN NaN 150.0 \n", + "188 False NaN NaN 151.0 \n", + "189 False NaN NaN 152.0 \n", + "190 False NaN NaN 153.0 \n", + "191 False NaN NaN 154.0 \n", + "192 False NaN NaN 155.0 \n", + "193 False NaN NaN 156.0 \n", + "194 False NaN NaN 157.0 \n", + "195 False NaN NaN 159.0 \n", + "196 False NaN NaN 162.0 \n", + "197 False NaN NaN 164.0 \n", + "198 False NaN NaN 165.0 \n", + "199 False NaN NaN 166.0 \n", + "200 False NaN NaN 167.0 \n", + "201 False NaN NaN 168.0 \n", + "202 False NaN NaN 169.0 \n", + "203 False NaN NaN 170.0 \n", + "204 False NaN NaN 171.0 \n", + "205 False NaN NaN 172.0 \n", + "206 False NaN NaN 173.0 \n", + "207 False NaN NaN 174.0 \n", + "208 False NaN NaN 175.0 \n", + "209 False NaN NaN 176.0 \n", + "210 False NaN NaN 177.0 \n", + "211 False NaN NaN 178.0 \n", + "212 False NaN NaN 179.0 \n", + "213 False NaN NaN 180.0 \n", + "214 False NaN NaN 181.0 \n", + "215 False NaN NaN 182.0 \n", + "216 False NaN NaN 183.0 \n", + "217 False NaN NaN 184.0 \n", + "218 False NaN NaN 197.0 \n", + "219 False NaN NaN 203.0 \n", + "220 False NaN NaN 204.0 \n", + "221 False NaN NaN 205.0 \n", + "222 False NaN NaN 206.0 \n", + "223 False NaN NaN 207.0 \n", + "224 False NaN NaN 208.0 \n", + "225 False NaN NaN 209.0 \n", + "226 False NaN NaN 210.0 \n", + "227 False NaN NaN 211.0 \n", + "228 False NaN NaN 214.0 \n", + "229 False NaN NaN 224.0 \n", + "230 False NaN NaN 233.0 \n", + "231 False NaN NaN 248.0 \n", + "232 False NaN NaN 249.0 \n", + "233 False NaN NaN 251.0 \n", + "234 False NaN NaN 252.0 \n", + "235 False NaN NaN 255.0 \n", + "236 False NaN NaN 256.0 \n", + "237 False NaN NaN 257.0 \n", + "238 False NaN NaN 261.0 \n", + "239 False NaN NaN 263.0 \n", + "240 False NaN NaN 264.0 \n", + "241 False NaN NaN 266.0 \n", + "242 False NaN NaN 267.0 \n", + "243 False NaN NaN 269.0 \n", + "244 False NaN NaN 270.0 \n", + "245 False NaN NaN 271.0 \n", + "246 False NaN NaN 272.0 \n", + "247 False NaN NaN 273.0 \n", + "248 False NaN NaN 274.0 \n", + "249 False NaN NaN 275.0 \n", + "250 False NaN NaN 276.0 \n", + "251 False NaN NaN 286.0 \n", + "252 False NaN NaN 287.0 \n", + "253 False NaN NaN 288.0 \n", + "254 False NaN NaN 290.0 \n", + "255 False NaN NaN 291.0 \n", + "256 False NaN NaN 292.0 \n", + "257 False NaN NaN 293.0 \n", + "258 False NaN NaN 294.0 \n", + "259 False NaN NaN 295.0 \n", + "260 False NaN NaN 296.0 \n", + "261 False NaN NaN 298.0 \n", + "262 False NaN NaN 299.0 \n", + "263 False NaN NaN 300.0 \n", + "264 False NaN NaN 301.0 \n", + "265 False NaN NaN 302.0 \n", + "266 False NaN NaN 303.0 \n", + "267 False NaN NaN 305.0 \n", + "268 False NaN NaN 306.0 \n", + "269 False NaN NaN 308.0 \n", + "270 False NaN NaN 309.0 \n", + "271 False NaN NaN 310.0 \n", + "272 False NaN NaN 311.0 \n", + "273 False NaN NaN 312.0 \n", + "274 False NaN NaN 313.0 \n", + "275 False NaN NaN 314.0 \n", + "276 False NaN NaN 316.0 \n", + "277 False NaN NaN 317.0 \n", + "278 False NaN NaN 319.0 \n", + "279 False NaN NaN 320.0 \n", + "280 False NaN NaN 322.0 \n", + "281 False NaN NaN 324.0 \n", + "282 False NaN NaN 326.0 \n", + "283 False NaN NaN 327.0 \n", + "284 False NaN NaN 328.0 \n", + "285 False NaN NaN 329.0 \n", + "286 False NaN NaN 330.0 \n", + "287 False NaN NaN 331.0 \n", + "288 False NaN NaN 332.0 \n", + "289 False NaN NaN 333.0 \n", + "290 False NaN NaN 334.0 \n", + "291 False NaN NaN 335.0 \n", + "292 False NaN NaN 337.0 \n", + "293 False NaN NaN 340.0 \n", + "294 False NaN NaN 341.0 \n", + "295 False NaN NaN 342.0 \n", + "296 False NaN NaN 343.0 \n", + "297 False NaN NaN 344.0 \n", + "298 False NaN NaN 346.0 \n", + "299 False NaN NaN 347.0 \n", + "300 False NaN NaN 348.0 \n", + "301 False NaN NaN 349.0 \n", + "302 False NaN NaN 350.0 \n", + "303 False NaN NaN 351.0 \n", + "304 False NaN NaN 352.0 \n", + "305 False NaN NaN 353.0 \n", + "306 False NaN NaN 354.0 \n", + "307 False NaN NaN 356.0 \n", + "308 False NaN NaN 357.0 \n", + "309 False NaN NaN 358.0 \n", + "310 False NaN NaN 359.0 \n", + "311 False NaN NaN 360.0 \n", + "312 False NaN NaN 361.0 \n", + "313 False NaN NaN 362.0 \n", + "314 False NaN NaN 363.0 \n", + "315 False NaN NaN 364.0 \n", + "316 False NaN NaN 366.0 \n", + "317 False NaN NaN 369.0 \n", + "318 False NaN NaN 370.0 \n", + "319 False NaN NaN 371.0 \n", + "320 False NaN NaN 374.0 \n", + "321 False NaN NaN 376.0 \n", + "322 False NaN NaN 377.0 \n", + "323 False NaN NaN 378.0 \n", + "324 False NaN NaN 379.0 \n", + "325 False NaN NaN 380.0 \n", + "326 False NaN NaN 381.0 \n", + "327 False NaN NaN 384.0 \n", + "328 False NaN NaN 387.0 \n", + "329 False NaN NaN 388.0 \n", + "330 False NaN NaN 390.0 \n", + "331 False NaN NaN 391.0 \n", + "332 False NaN NaN 392.0 \n", + "333 False NaN NaN 394.0 \n", + "334 False NaN NaN 395.0 \n", + "335 False NaN NaN 396.0 \n", + "336 False NaN NaN 397.0 \n", + "337 False NaN NaN 398.0 \n", + "338 False NaN NaN 400.0 \n", + "339 False NaN NaN 401.0 \n", + "340 False NaN NaN 402.0 \n", + "341 False NaN NaN 403.0 \n", + "342 False NaN NaN 404.0 \n", + "343 False NaN NaN 405.0 \n", + "344 False NaN NaN 406.0 \n", + "345 False NaN NaN 408.0 \n", + "346 False NaN NaN 409.0 \n", + "347 False NaN NaN 412.0 \n", + "348 False NaN NaN 414.0 \n", + "349 False NaN NaN 415.0 \n", + "350 False NaN NaN 416.0 \n", + "351 False NaN NaN 417.0 \n", + "352 False NaN NaN NaN \n", + "353 False NaN NaN NaN \n", + "354 False NaN NaN NaN \n", + "355 False NaN NaN NaN \n", + "356 False NaN NaN NaN \n", + "357 False NaN NaN NaN \n", + "358 False NaN NaN NaN \n", + "359 False NaN NaN NaN \n", + "360 False NaN NaN NaN \n", + "361 False NaN NaN NaN \n", + "362 False NaN NaN NaN \n", + "363 False NaN NaN NaN \n", + "364 False NaN NaN NaN \n", + "365 False NaN NaN NaN \n", + "366 False NaN NaN NaN \n", + "367 False NaN NaN NaN \n", + "368 False NaN NaN NaN \n", + "369 False NaN NaN NaN \n", + "370 False NaN NaN NaN \n", + "371 False NaN NaN NaN \n", + "372 False NaN NaN NaN \n", + "373 False NaN NaN NaN \n", + "\n", + " dav ontological synopsis turbo no synopsis turbo ontological synopsis \\\n", + "0 2.0 NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "5 NaN 0.0 0.0 \n", + "6 1.0 NaN NaN \n", + "7 NaN NaN NaN \n", + "8 NaN NaN NaN \n", + "9 NaN NaN NaN \n", + "10 NaN NaN NaN \n", + "11 NaN NaN NaN \n", + "12 NaN NaN NaN \n", + "13 NaN NaN NaN \n", + "14 NaN NaN NaN \n", + "15 NaN NaN NaN \n", + "16 NaN NaN NaN \n", + "17 NaN NaN NaN \n", + "18 NaN NaN NaN \n", + "19 NaN NaN NaN \n", + "20 NaN NaN NaN \n", + "21 NaN NaN NaN \n", + "22 NaN NaN NaN \n", + "23 NaN NaN NaN \n", + "24 NaN NaN NaN \n", + "25 NaN NaN NaN \n", + "26 NaN NaN NaN \n", + "27 NaN NaN NaN \n", + "28 NaN NaN NaN \n", + "29 NaN NaN NaN \n", + "30 NaN NaN NaN \n", + "31 NaN NaN NaN \n", + "32 NaN NaN NaN \n", + "33 NaN NaN NaN \n", + "34 NaN NaN NaN \n", + "35 NaN NaN NaN \n", + "36 NaN NaN NaN \n", + "37 NaN NaN NaN \n", + "38 NaN NaN NaN \n", + "39 NaN NaN NaN \n", + "40 NaN NaN NaN \n", + "41 NaN NaN NaN \n", + "42 NaN NaN NaN \n", + "43 NaN NaN NaN \n", + "44 NaN NaN NaN \n", + "45 NaN NaN NaN \n", + "46 NaN NaN NaN \n", + "47 NaN NaN NaN \n", + "48 NaN NaN NaN \n", + "49 NaN NaN NaN \n", + "50 NaN NaN NaN \n", + "51 NaN NaN NaN \n", + "52 NaN NaN NaN \n", + "53 NaN NaN NaN \n", + "54 NaN NaN NaN \n", + "55 NaN NaN NaN \n", + "56 NaN NaN NaN \n", + "57 8.0 NaN NaN \n", + "58 NaN NaN NaN \n", + "59 NaN NaN NaN \n", + "60 NaN NaN NaN \n", + "61 NaN NaN NaN \n", + "62 NaN NaN NaN \n", + "63 NaN NaN NaN \n", + "64 NaN NaN NaN \n", + "65 NaN NaN NaN \n", + "66 NaN NaN NaN \n", + "67 NaN NaN NaN \n", + "68 NaN NaN NaN \n", + "69 NaN NaN NaN \n", + "70 NaN NaN NaN \n", + "71 NaN NaN NaN \n", + "72 7.0 NaN NaN \n", + "73 NaN NaN NaN \n", + "74 NaN NaN NaN \n", + "75 NaN NaN NaN \n", + "76 NaN NaN NaN \n", + "77 NaN NaN NaN \n", + "78 NaN NaN NaN \n", + "79 NaN NaN NaN \n", + "80 NaN NaN NaN \n", + "81 NaN NaN NaN \n", + "82 NaN NaN NaN \n", + "83 NaN NaN NaN \n", + "84 3.0 NaN NaN \n", + "85 NaN NaN NaN \n", + "86 NaN NaN NaN \n", + "87 NaN NaN NaN \n", + "88 NaN NaN NaN \n", + "89 NaN NaN NaN \n", + "90 NaN NaN NaN \n", + "91 NaN NaN NaN \n", + "92 NaN NaN NaN \n", + "93 NaN NaN NaN \n", + "94 NaN NaN NaN \n", + "95 NaN NaN NaN \n", + "96 NaN NaN NaN \n", + "97 NaN NaN NaN \n", + "98 NaN NaN NaN \n", + "99 NaN NaN NaN \n", + "100 NaN NaN NaN \n", + "101 NaN NaN NaN \n", + "102 NaN NaN NaN \n", + "103 NaN NaN NaN \n", + "104 NaN NaN NaN \n", + "105 NaN NaN NaN \n", + "106 NaN NaN NaN \n", + "107 NaN NaN NaN \n", + "108 NaN NaN NaN \n", + "109 NaN NaN NaN \n", + "110 NaN NaN NaN \n", + "111 NaN NaN NaN \n", + "112 NaN NaN NaN \n", + "113 NaN NaN NaN \n", + "114 NaN NaN NaN \n", + "115 NaN NaN NaN \n", + "116 NaN NaN NaN \n", + "117 NaN NaN NaN \n", + "118 NaN NaN NaN \n", + "119 NaN NaN NaN \n", + "120 NaN NaN NaN \n", + "121 NaN NaN NaN \n", + "122 NaN NaN NaN \n", + "123 NaN NaN NaN \n", + "124 NaN NaN NaN \n", + "125 NaN NaN NaN \n", + "126 NaN NaN NaN \n", + "127 NaN NaN NaN \n", + "128 NaN NaN NaN \n", + "129 NaN NaN NaN \n", + "130 NaN NaN NaN \n", + "131 NaN NaN NaN \n", + "132 NaN NaN NaN \n", + "133 NaN NaN NaN \n", + "134 NaN NaN NaN \n", + "135 NaN NaN NaN \n", + "136 NaN NaN NaN \n", + "137 NaN NaN NaN \n", + "138 NaN NaN NaN \n", + "139 NaN NaN NaN \n", + "140 NaN NaN NaN \n", + "141 NaN NaN NaN \n", + "142 NaN NaN NaN \n", + "143 NaN NaN NaN \n", + "144 NaN NaN NaN \n", + "145 NaN NaN NaN \n", + "146 NaN NaN NaN \n", + "147 NaN NaN NaN \n", + "148 NaN NaN NaN \n", + "149 NaN NaN NaN \n", + "150 NaN NaN NaN \n", + "151 NaN NaN NaN \n", + "152 NaN NaN NaN \n", + "153 NaN NaN NaN \n", + "154 NaN NaN NaN \n", + "155 NaN NaN NaN \n", + "156 NaN NaN NaN \n", + "157 NaN NaN NaN \n", + "158 NaN NaN NaN \n", + "159 NaN NaN NaN \n", + "160 NaN NaN NaN \n", + "161 NaN NaN NaN \n", + "162 NaN NaN NaN \n", + "163 NaN NaN NaN \n", + "164 NaN NaN NaN \n", + "165 NaN NaN NaN \n", + "166 NaN NaN NaN \n", + "167 NaN NaN NaN \n", + "168 NaN NaN NaN \n", + "169 NaN NaN NaN \n", + "170 NaN NaN NaN \n", + "171 NaN NaN NaN \n", + "172 NaN NaN NaN \n", + "173 NaN NaN NaN \n", + "174 NaN NaN NaN \n", + "175 NaN NaN NaN \n", + "176 NaN NaN NaN \n", + "177 NaN NaN NaN \n", + "178 NaN NaN NaN \n", + "179 NaN NaN NaN \n", + "180 NaN NaN NaN \n", + "181 NaN NaN NaN \n", + "182 NaN NaN NaN \n", + "183 NaN NaN NaN \n", + "184 NaN NaN NaN \n", + "185 NaN NaN NaN \n", + "186 NaN NaN NaN \n", + "187 NaN NaN NaN \n", + "188 NaN NaN NaN \n", + "189 NaN NaN NaN \n", + "190 NaN NaN NaN \n", + "191 NaN NaN NaN \n", + "192 NaN NaN NaN \n", + "193 NaN NaN NaN \n", + "194 NaN NaN NaN \n", + "195 NaN NaN NaN \n", + "196 NaN NaN NaN \n", + "197 NaN NaN NaN \n", + "198 NaN NaN NaN \n", + "199 NaN NaN NaN \n", + "200 NaN NaN NaN \n", + "201 NaN NaN NaN \n", + "202 NaN NaN NaN \n", + "203 NaN NaN NaN \n", + "204 NaN NaN NaN \n", + "205 NaN NaN NaN \n", + "206 NaN NaN NaN \n", + "207 NaN NaN NaN \n", + "208 NaN NaN NaN \n", + "209 NaN NaN NaN \n", + "210 NaN NaN NaN \n", + "211 NaN NaN NaN \n", + "212 NaN NaN NaN \n", + "213 NaN NaN NaN \n", + "214 NaN NaN NaN \n", + "215 NaN NaN NaN \n", + "216 NaN NaN NaN \n", + "217 NaN NaN NaN \n", + "218 NaN NaN NaN \n", + "219 NaN NaN NaN \n", + "220 NaN NaN NaN \n", + "221 NaN NaN NaN \n", + "222 NaN NaN NaN \n", + "223 NaN NaN NaN \n", + "224 NaN NaN NaN \n", + "225 NaN NaN NaN \n", + "226 NaN NaN NaN \n", + "227 NaN NaN NaN \n", + "228 NaN NaN NaN \n", + "229 NaN NaN NaN \n", + "230 NaN NaN NaN \n", + "231 NaN NaN NaN \n", + "232 NaN NaN NaN \n", + "233 NaN NaN NaN \n", + "234 NaN NaN NaN \n", + "235 NaN NaN NaN \n", + "236 NaN NaN NaN \n", + "237 NaN NaN NaN \n", + "238 NaN NaN NaN \n", + "239 NaN NaN NaN \n", + "240 NaN NaN NaN \n", + "241 NaN NaN NaN \n", + "242 NaN NaN NaN \n", + "243 NaN NaN NaN \n", + "244 NaN NaN NaN \n", + "245 NaN NaN NaN \n", + "246 NaN NaN NaN \n", + "247 NaN NaN NaN \n", + "248 NaN NaN NaN \n", + "249 NaN NaN NaN \n", + "250 NaN NaN NaN \n", + "251 NaN NaN NaN \n", + "252 NaN NaN NaN \n", + "253 NaN NaN NaN \n", + "254 NaN NaN NaN \n", + "255 NaN NaN NaN \n", + "256 NaN NaN NaN \n", + "257 NaN NaN NaN \n", + "258 NaN NaN NaN \n", + "259 NaN NaN NaN \n", + "260 NaN NaN NaN \n", + "261 NaN NaN NaN \n", + "262 NaN NaN NaN \n", + "263 NaN NaN NaN \n", + "264 NaN NaN NaN \n", + "265 NaN NaN NaN \n", + "266 NaN NaN NaN \n", + "267 NaN NaN NaN \n", + "268 NaN NaN NaN \n", + "269 NaN NaN NaN \n", + "270 NaN NaN NaN \n", + "271 NaN NaN NaN \n", + "272 NaN NaN NaN \n", + "273 NaN NaN NaN \n", + "274 NaN NaN NaN \n", + "275 NaN NaN NaN \n", + "276 NaN NaN NaN \n", + "277 NaN NaN NaN \n", + "278 NaN NaN NaN \n", + "279 NaN NaN NaN \n", + "280 NaN NaN NaN \n", + "281 NaN NaN NaN \n", + "282 NaN NaN NaN \n", + "283 NaN NaN NaN \n", + "284 NaN NaN NaN \n", + "285 NaN NaN NaN \n", + "286 NaN NaN NaN \n", + "287 NaN NaN NaN \n", + "288 NaN NaN NaN \n", + "289 NaN NaN NaN \n", + "290 NaN NaN NaN \n", + "291 NaN NaN NaN \n", + "292 NaN NaN NaN \n", + "293 NaN NaN NaN \n", + "294 NaN NaN NaN \n", + "295 NaN NaN NaN \n", + "296 NaN NaN NaN \n", + "297 NaN NaN NaN \n", + "298 NaN NaN NaN \n", + "299 NaN NaN NaN \n", + "300 NaN NaN NaN \n", + "301 NaN NaN NaN \n", + "302 NaN NaN NaN \n", + "303 NaN NaN NaN \n", + "304 NaN NaN NaN \n", + "305 NaN NaN NaN \n", + "306 NaN NaN NaN \n", + "307 NaN NaN NaN \n", + "308 NaN NaN NaN \n", + "309 NaN NaN NaN \n", + "310 NaN NaN NaN \n", + "311 NaN NaN NaN \n", + "312 NaN NaN NaN \n", + "313 NaN NaN NaN \n", + "314 NaN NaN NaN \n", + "315 NaN NaN NaN \n", + "316 NaN NaN NaN \n", + "317 NaN NaN NaN \n", + "318 NaN NaN NaN \n", + "319 NaN NaN NaN \n", + "320 NaN NaN NaN \n", + "321 NaN NaN NaN \n", + "322 NaN NaN NaN \n", + "323 NaN NaN NaN \n", + "324 9.0 NaN NaN \n", + "325 NaN NaN NaN \n", + "326 NaN NaN NaN \n", + "327 NaN NaN NaN \n", + "328 NaN NaN NaN \n", + "329 NaN NaN NaN \n", + "330 NaN NaN NaN \n", + "331 NaN NaN NaN \n", + "332 NaN NaN NaN \n", + "333 NaN NaN NaN \n", + "334 NaN NaN NaN \n", + "335 NaN NaN NaN \n", + "336 NaN NaN NaN \n", + "337 NaN NaN NaN \n", + "338 NaN NaN NaN \n", + "339 NaN NaN NaN \n", + "340 NaN NaN NaN \n", + "341 NaN NaN NaN \n", + "342 NaN NaN NaN \n", + "343 NaN NaN NaN \n", + "344 NaN NaN NaN \n", + "345 NaN NaN NaN \n", + "346 NaN NaN NaN \n", + "347 NaN NaN NaN \n", + "348 NaN NaN NaN \n", + "349 NaN NaN NaN \n", + "350 NaN NaN NaN \n", + "351 NaN NaN NaN \n", + "352 0.0 NaN NaN \n", + "353 4.0 NaN NaN \n", + "354 5.0 NaN NaN \n", + "355 6.0 NaN NaN \n", + "356 NaN 1.0 NaN \n", + "357 NaN 2.0 1.0 \n", + "358 NaN NaN 2.0 \n", + "359 NaN NaN 3.0 \n", + "360 NaN NaN 4.0 \n", + "361 NaN NaN NaN \n", + "362 NaN NaN NaN \n", + "363 NaN NaN NaN \n", + "364 NaN NaN NaN \n", + "365 NaN NaN NaN \n", + "366 NaN NaN NaN \n", + "367 NaN NaN NaN \n", + "368 NaN NaN NaN \n", + "369 NaN NaN NaN \n", + "370 NaN NaN NaN \n", + "371 NaN NaN NaN \n", + "372 NaN NaN NaN \n", + "373 NaN NaN NaN \n", + "\n", + " rank based dav no synopsis turbo narrative synopsis \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "5 NaN NaN NaN \n", + "6 NaN NaN NaN \n", + "7 NaN NaN NaN \n", + "8 NaN NaN NaN \n", + "9 NaN NaN NaN \n", + "10 NaN NaN NaN \n", + "11 NaN NaN NaN \n", + "12 NaN NaN NaN \n", + "13 NaN NaN NaN \n", + "14 NaN NaN NaN \n", + "15 NaN NaN NaN \n", + "16 NaN NaN NaN \n", + "17 NaN NaN NaN \n", + "18 NaN NaN NaN \n", + "19 NaN NaN NaN \n", + "20 NaN NaN NaN \n", + "21 NaN NaN NaN \n", + "22 NaN NaN NaN \n", + "23 NaN NaN NaN \n", + "24 NaN NaN NaN \n", + "25 NaN NaN NaN \n", + "26 NaN NaN NaN \n", + "27 NaN NaN NaN \n", + "28 NaN NaN NaN \n", + "29 NaN NaN NaN \n", + "30 NaN NaN NaN \n", + "31 NaN NaN NaN \n", + "32 NaN NaN NaN \n", + "33 NaN NaN NaN \n", + "34 NaN NaN NaN \n", + "35 NaN NaN NaN \n", + "36 NaN NaN NaN \n", + "37 NaN NaN NaN \n", + "38 NaN NaN NaN \n", + "39 NaN NaN NaN \n", + "40 NaN NaN NaN \n", + "41 NaN NaN NaN \n", + "42 NaN NaN NaN \n", + "43 NaN NaN NaN \n", + "44 NaN NaN NaN \n", + "45 NaN NaN NaN \n", + "46 NaN NaN NaN \n", + "47 NaN NaN NaN \n", + "48 NaN NaN NaN \n", + "49 NaN NaN NaN \n", + "50 NaN NaN NaN \n", + "51 NaN NaN NaN \n", + "52 NaN NaN NaN \n", + "53 NaN NaN NaN \n", + "54 NaN NaN NaN \n", + "55 NaN NaN NaN \n", + "56 NaN NaN NaN \n", + "57 NaN NaN NaN \n", + "58 NaN NaN NaN \n", + "59 NaN NaN NaN \n", + "60 NaN NaN NaN \n", + "61 NaN NaN NaN \n", + "62 NaN NaN NaN \n", + "63 NaN NaN NaN \n", + "64 NaN NaN NaN \n", + "65 NaN NaN NaN \n", + "66 NaN NaN NaN \n", + "67 NaN NaN NaN \n", + "68 NaN NaN NaN \n", + "69 0.0 NaN NaN \n", + "70 NaN NaN NaN \n", + "71 NaN NaN NaN \n", + "72 NaN NaN NaN \n", + "73 NaN NaN NaN \n", + "74 NaN NaN NaN \n", + "75 NaN NaN NaN \n", + "76 4.0 NaN NaN \n", + "77 NaN NaN NaN \n", + "78 NaN NaN NaN \n", + "79 NaN NaN NaN \n", + "80 NaN NaN NaN \n", + "81 NaN NaN NaN \n", + "82 2.0 NaN NaN \n", + "83 3.0 NaN NaN \n", + "84 NaN NaN NaN \n", + "85 NaN NaN NaN \n", + "86 NaN NaN NaN \n", + "87 NaN NaN NaN \n", + "88 NaN NaN NaN \n", + "89 NaN NaN NaN \n", + "90 NaN NaN NaN \n", + "91 NaN NaN NaN \n", + "92 NaN NaN NaN \n", + "93 NaN NaN NaN \n", + "94 NaN NaN NaN \n", + "95 NaN NaN NaN \n", + "96 NaN NaN NaN \n", + "97 NaN NaN NaN \n", + "98 NaN NaN NaN \n", + "99 NaN NaN NaN \n", + "100 NaN NaN NaN \n", + "101 NaN NaN NaN \n", + "102 NaN NaN NaN \n", + "103 NaN NaN NaN \n", + "104 NaN NaN NaN \n", + "105 NaN NaN NaN \n", + "106 NaN NaN NaN \n", + "107 7.0 NaN NaN \n", + "108 NaN NaN NaN \n", + "109 NaN NaN NaN \n", + "110 NaN NaN NaN \n", + "111 NaN NaN NaN \n", + "112 NaN NaN NaN \n", + "113 NaN NaN NaN \n", + "114 NaN NaN NaN \n", + "115 NaN NaN NaN \n", + "116 NaN 1.0 NaN \n", + "117 NaN NaN NaN \n", + "118 NaN NaN NaN \n", + "119 NaN NaN NaN \n", + "120 NaN NaN NaN \n", + "121 NaN NaN NaN \n", + "122 NaN NaN NaN \n", + "123 NaN NaN NaN \n", + "124 NaN NaN NaN \n", + "125 NaN NaN NaN \n", + "126 NaN NaN NaN \n", + "127 NaN NaN NaN \n", + "128 NaN NaN NaN \n", + "129 NaN NaN NaN \n", + "130 NaN NaN NaN \n", + "131 NaN NaN NaN \n", + "132 NaN NaN NaN \n", + "133 NaN NaN NaN \n", + "134 NaN NaN NaN \n", + "135 NaN NaN NaN \n", + "136 NaN NaN NaN \n", + "137 NaN NaN NaN \n", + "138 NaN NaN NaN \n", + "139 NaN NaN NaN \n", + "140 NaN NaN NaN \n", + "141 NaN NaN NaN \n", + "142 NaN NaN NaN \n", + "143 NaN NaN NaN \n", + "144 NaN NaN NaN \n", + "145 NaN NaN NaN \n", + "146 NaN NaN NaN \n", + "147 NaN NaN NaN \n", + "148 NaN NaN NaN \n", + "149 NaN NaN NaN \n", + "150 NaN NaN NaN \n", + "151 NaN NaN NaN \n", + "152 NaN NaN NaN \n", + "153 NaN NaN NaN \n", + "154 NaN NaN NaN \n", + "155 NaN NaN NaN \n", + "156 NaN NaN NaN \n", + "157 NaN NaN NaN \n", + "158 NaN NaN NaN \n", + "159 NaN NaN NaN \n", + "160 NaN NaN NaN \n", + "161 NaN NaN NaN \n", + "162 NaN NaN NaN \n", + "163 NaN NaN NaN \n", + "164 NaN NaN NaN \n", + "165 NaN NaN NaN \n", + "166 NaN NaN NaN \n", + "167 NaN NaN NaN \n", + "168 NaN NaN NaN \n", + "169 NaN NaN NaN \n", + "170 NaN NaN NaN \n", + "171 NaN NaN NaN \n", + "172 NaN NaN NaN \n", + "173 NaN NaN NaN \n", + "174 NaN NaN NaN \n", + "175 NaN NaN NaN \n", + "176 NaN NaN NaN \n", + "177 NaN NaN NaN \n", + "178 NaN NaN NaN \n", + "179 NaN NaN NaN \n", + "180 NaN NaN NaN \n", + "181 NaN NaN NaN \n", + "182 NaN NaN NaN \n", + "183 NaN NaN NaN \n", + "184 NaN NaN NaN \n", + "185 NaN NaN NaN \n", + "186 NaN NaN NaN \n", + "187 NaN NaN NaN \n", + "188 NaN NaN NaN \n", + "189 NaN NaN NaN \n", + "190 NaN NaN NaN \n", + "191 NaN NaN NaN \n", + "192 NaN NaN NaN \n", + "193 NaN NaN NaN \n", + "194 NaN NaN NaN \n", + "195 NaN NaN NaN \n", + "196 NaN NaN NaN \n", + "197 NaN NaN NaN \n", + "198 NaN NaN NaN \n", + "199 NaN NaN NaN \n", + "200 NaN NaN NaN \n", + "201 NaN NaN NaN \n", + "202 NaN NaN NaN \n", + "203 NaN NaN NaN \n", + "204 NaN NaN NaN \n", + "205 NaN NaN NaN \n", + "206 NaN NaN NaN \n", + "207 NaN NaN NaN \n", + "208 NaN NaN NaN \n", + "209 NaN NaN NaN \n", + "210 NaN NaN NaN \n", + "211 1.0 NaN NaN \n", + "212 NaN NaN NaN \n", + "213 NaN NaN NaN \n", + "214 NaN NaN NaN \n", + "215 NaN NaN NaN \n", + "216 NaN NaN NaN \n", + "217 NaN NaN NaN \n", + "218 NaN NaN NaN \n", + "219 NaN NaN NaN \n", + "220 NaN NaN NaN \n", + "221 NaN 3.0 NaN \n", + "222 NaN NaN NaN \n", + "223 NaN NaN NaN \n", + "224 NaN NaN NaN \n", + "225 NaN NaN NaN \n", + "226 NaN NaN NaN \n", + "227 NaN NaN NaN \n", + "228 NaN NaN NaN \n", + "229 NaN NaN NaN \n", + "230 NaN NaN NaN \n", + "231 NaN NaN NaN \n", + "232 NaN NaN NaN \n", + "233 NaN NaN NaN \n", + "234 NaN NaN NaN \n", + "235 NaN NaN NaN \n", + "236 6.0 NaN NaN \n", + "237 NaN NaN NaN \n", + "238 NaN NaN NaN \n", + "239 NaN NaN NaN \n", + "240 NaN NaN NaN \n", + "241 NaN NaN NaN \n", + "242 NaN NaN NaN \n", + "243 NaN NaN NaN \n", + "244 NaN NaN NaN \n", + "245 NaN NaN NaN \n", + "246 NaN NaN NaN \n", + "247 NaN NaN NaN \n", + "248 NaN NaN NaN \n", + "249 NaN NaN NaN \n", + "250 NaN NaN NaN \n", + "251 NaN NaN NaN \n", + "252 NaN NaN NaN \n", + "253 NaN NaN NaN \n", + "254 NaN NaN NaN \n", + "255 NaN NaN NaN \n", + "256 NaN NaN NaN \n", + "257 NaN NaN NaN \n", + "258 NaN NaN NaN \n", + "259 NaN NaN NaN \n", + "260 NaN NaN NaN \n", + "261 NaN NaN NaN \n", + "262 NaN NaN NaN \n", + "263 NaN NaN NaN \n", + "264 NaN NaN NaN \n", + "265 NaN NaN NaN \n", + "266 NaN NaN NaN \n", + "267 NaN NaN NaN \n", + "268 NaN NaN NaN \n", + "269 NaN NaN NaN \n", + "270 NaN NaN NaN \n", + "271 NaN NaN NaN \n", + "272 NaN NaN NaN \n", + "273 NaN NaN NaN \n", + "274 NaN NaN NaN \n", + "275 NaN NaN NaN \n", + "276 NaN NaN NaN \n", + "277 NaN NaN NaN \n", + "278 NaN NaN NaN \n", + "279 NaN NaN NaN \n", + "280 NaN NaN NaN \n", + "281 NaN NaN NaN \n", + "282 NaN NaN NaN \n", + "283 NaN NaN NaN \n", + "284 NaN NaN NaN \n", + "285 NaN NaN NaN \n", + "286 NaN NaN NaN \n", + "287 NaN NaN NaN \n", + "288 NaN NaN NaN \n", + "289 NaN NaN NaN \n", + "290 NaN NaN NaN \n", + "291 NaN NaN NaN \n", + "292 NaN NaN NaN \n", + "293 NaN NaN NaN \n", + "294 NaN NaN NaN \n", + "295 NaN NaN NaN \n", + "296 NaN NaN NaN \n", + "297 NaN NaN NaN \n", + "298 NaN NaN NaN \n", + "299 NaN NaN NaN \n", + "300 NaN NaN NaN \n", + "301 NaN NaN NaN \n", + "302 NaN NaN NaN \n", + "303 NaN NaN NaN \n", + "304 NaN NaN NaN \n", + "305 NaN NaN NaN \n", + "306 NaN NaN NaN \n", + "307 NaN NaN NaN \n", + "308 NaN NaN NaN \n", + "309 NaN NaN NaN \n", + "310 NaN NaN NaN \n", + "311 NaN NaN NaN \n", + "312 NaN NaN NaN \n", + "313 NaN NaN NaN \n", + "314 NaN NaN NaN \n", + "315 NaN NaN NaN \n", + "316 NaN NaN NaN \n", + "317 NaN NaN NaN \n", + "318 NaN NaN NaN \n", + "319 NaN NaN NaN \n", + "320 NaN NaN NaN \n", + "321 NaN NaN NaN \n", + "322 NaN NaN NaN \n", + "323 NaN NaN NaN \n", + "324 NaN NaN NaN \n", + "325 NaN NaN NaN \n", + "326 NaN NaN NaN \n", + "327 NaN NaN NaN \n", + "328 NaN NaN NaN \n", + "329 NaN NaN NaN \n", + "330 NaN NaN NaN \n", + "331 NaN NaN NaN \n", + "332 NaN NaN NaN \n", + "333 NaN NaN NaN \n", + "334 NaN NaN NaN \n", + "335 NaN NaN NaN \n", + "336 NaN NaN NaN \n", + "337 NaN NaN NaN \n", + "338 NaN NaN NaN \n", + "339 NaN NaN NaN \n", + "340 NaN NaN NaN \n", + "341 NaN NaN NaN \n", + "342 NaN NaN NaN \n", + "343 NaN NaN NaN \n", + "344 NaN NaN NaN \n", + "345 NaN NaN NaN \n", + "346 NaN NaN NaN \n", + "347 NaN NaN NaN \n", + "348 NaN NaN NaN \n", + "349 NaN NaN NaN \n", + "350 NaN NaN NaN \n", + "351 NaN NaN NaN \n", + "352 NaN 0.0 0.0 \n", + "353 NaN NaN NaN \n", + "354 NaN NaN NaN \n", + "355 NaN NaN NaN \n", + "356 NaN NaN NaN \n", + "357 NaN NaN NaN \n", + "358 NaN NaN NaN \n", + "359 NaN NaN NaN \n", + "360 NaN NaN NaN \n", + "361 NaN NaN 1.0 \n", + "362 NaN NaN 2.0 \n", + "363 NaN NaN 3.0 \n", + "364 NaN 2.0 NaN \n", + "365 NaN 4.0 NaN \n", + "366 NaN 5.0 NaN \n", + "367 NaN 6.0 NaN \n", + "368 NaN 7.0 NaN \n", + "369 NaN 8.0 NaN \n", + "370 NaN NaN NaN \n", + "371 NaN NaN NaN \n", + "372 NaN NaN NaN \n", + "373 5.0 NaN NaN \n", + "\n", + " dav narrative synopsis \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "5 NaN \n", + "6 NaN \n", + "7 NaN \n", + "8 NaN \n", + "9 NaN \n", + "10 NaN \n", + "11 NaN \n", + "12 NaN \n", + "13 NaN \n", + "14 NaN \n", + "15 NaN \n", + "16 NaN \n", + "17 NaN \n", + "18 NaN \n", + "19 NaN \n", + "20 NaN \n", + "21 NaN \n", + "22 NaN \n", + "23 NaN \n", + "24 NaN \n", + "25 NaN \n", + "26 NaN \n", + "27 NaN \n", + "28 NaN \n", + "29 NaN \n", + "30 NaN \n", + "31 NaN \n", + "32 NaN \n", + "33 NaN \n", + "34 NaN \n", + "35 NaN \n", + "36 NaN \n", + "37 NaN \n", + "38 NaN \n", + "39 NaN \n", + "40 NaN \n", + "41 NaN \n", + "42 NaN \n", + "43 NaN \n", + "44 NaN \n", + "45 NaN \n", + "46 NaN \n", + "47 NaN \n", + "48 NaN \n", + "49 NaN \n", + "50 NaN \n", + "51 NaN \n", + "52 NaN \n", + "53 NaN \n", + "54 NaN \n", + "55 NaN \n", + "56 NaN \n", + "57 NaN \n", + "58 NaN \n", + "59 NaN \n", + "60 NaN \n", + "61 NaN \n", + "62 NaN \n", + "63 NaN \n", + "64 NaN \n", + "65 NaN \n", + "66 NaN \n", + "67 NaN \n", + "68 NaN \n", + "69 NaN \n", + "70 NaN \n", + "71 NaN \n", + "72 NaN \n", + "73 NaN \n", + "74 NaN \n", + "75 NaN \n", + "76 NaN \n", + "77 NaN \n", + "78 NaN \n", + "79 NaN \n", + "80 NaN \n", + "81 NaN \n", + "82 NaN \n", + "83 NaN \n", + "84 NaN \n", + "85 NaN \n", + "86 NaN \n", + "87 NaN \n", + "88 NaN \n", + "89 NaN \n", + "90 NaN \n", + "91 NaN \n", + "92 NaN \n", + "93 NaN \n", + "94 NaN \n", + "95 NaN \n", + "96 NaN \n", + "97 NaN \n", + "98 NaN \n", + "99 NaN \n", + "100 NaN \n", + "101 NaN \n", + "102 NaN \n", + "103 NaN \n", + "104 NaN \n", + "105 NaN \n", + "106 NaN \n", + "107 NaN \n", + "108 NaN \n", + "109 NaN \n", + "110 NaN \n", + "111 NaN \n", + "112 NaN \n", + "113 NaN \n", + "114 NaN \n", + "115 NaN \n", + "116 NaN \n", + "117 NaN \n", + "118 NaN \n", + "119 NaN \n", + "120 NaN \n", + "121 NaN \n", + "122 NaN \n", + "123 NaN \n", + "124 NaN \n", + "125 NaN \n", + "126 NaN \n", + "127 NaN \n", + "128 NaN \n", + "129 NaN \n", + "130 NaN \n", + "131 NaN \n", + "132 NaN \n", + "133 NaN \n", + "134 NaN \n", + "135 NaN \n", + "136 NaN \n", + "137 NaN \n", + "138 NaN \n", + "139 NaN \n", + "140 NaN \n", + "141 NaN \n", + "142 NaN \n", + "143 NaN \n", + "144 NaN \n", + "145 NaN \n", + "146 NaN \n", + "147 NaN \n", + "148 NaN \n", + "149 NaN \n", + "150 NaN \n", + "151 NaN \n", + "152 NaN \n", + "153 NaN \n", + "154 NaN \n", + "155 NaN \n", + "156 NaN \n", + "157 NaN \n", + "158 NaN \n", + "159 NaN \n", + "160 NaN \n", + "161 NaN \n", + "162 NaN \n", + "163 NaN \n", + "164 NaN \n", + "165 NaN \n", + "166 NaN \n", + "167 NaN \n", + "168 NaN \n", + "169 NaN \n", + "170 NaN \n", + "171 NaN \n", + "172 NaN \n", + "173 NaN \n", + "174 NaN \n", + "175 NaN \n", + "176 NaN \n", + "177 NaN \n", + "178 NaN \n", + "179 NaN \n", + "180 NaN \n", + "181 NaN \n", + "182 NaN \n", + "183 NaN \n", + "184 NaN \n", + "185 NaN \n", + "186 NaN \n", + "187 NaN \n", + "188 NaN \n", + "189 NaN \n", + "190 NaN \n", + "191 NaN \n", + "192 NaN \n", + "193 NaN \n", + "194 NaN \n", + "195 NaN \n", + "196 NaN \n", + "197 NaN \n", + "198 NaN \n", + "199 NaN \n", + "200 NaN \n", + "201 NaN \n", + "202 NaN \n", + "203 NaN \n", + "204 NaN \n", + "205 NaN \n", + "206 NaN \n", + "207 NaN \n", + "208 NaN \n", + "209 NaN \n", + "210 NaN \n", + "211 NaN \n", + "212 NaN \n", + "213 NaN \n", + "214 NaN \n", + "215 NaN \n", + "216 NaN \n", + "217 NaN \n", + "218 NaN \n", + "219 NaN \n", + "220 NaN \n", + "221 NaN \n", + "222 NaN \n", + "223 NaN \n", + "224 NaN \n", + "225 NaN \n", + "226 NaN \n", + "227 NaN \n", + "228 NaN \n", + "229 NaN \n", + "230 NaN \n", + "231 NaN \n", + "232 NaN \n", + "233 NaN \n", + "234 NaN \n", + "235 NaN \n", + "236 NaN \n", + "237 NaN \n", + "238 NaN \n", + "239 NaN \n", + "240 NaN \n", + "241 NaN \n", + "242 NaN \n", + "243 NaN \n", + "244 NaN \n", + "245 NaN \n", + "246 NaN \n", + "247 NaN \n", + "248 NaN \n", + "249 NaN \n", + "250 NaN \n", + "251 NaN \n", + "252 NaN \n", + "253 NaN \n", + "254 NaN \n", + "255 NaN \n", + "256 NaN \n", + "257 NaN \n", + "258 NaN \n", + "259 NaN \n", + "260 NaN \n", + "261 NaN \n", + "262 NaN \n", + "263 NaN \n", + "264 NaN \n", + "265 NaN \n", + "266 NaN \n", + "267 NaN \n", + "268 NaN \n", + "269 NaN \n", + "270 NaN \n", + "271 NaN \n", + "272 NaN \n", + "273 NaN \n", + "274 NaN \n", + "275 NaN \n", + "276 NaN \n", + "277 NaN \n", + "278 NaN \n", + "279 NaN \n", + "280 NaN \n", + "281 NaN \n", + "282 NaN \n", + "283 NaN \n", + "284 NaN \n", + "285 NaN \n", + "286 NaN \n", + "287 NaN \n", + "288 NaN \n", + "289 NaN \n", + "290 NaN \n", + "291 NaN \n", + "292 NaN \n", + "293 NaN \n", + "294 NaN \n", + "295 NaN \n", + "296 NaN \n", + "297 NaN \n", + "298 NaN \n", + "299 NaN \n", + "300 NaN \n", + "301 NaN \n", + "302 NaN \n", + "303 NaN \n", + "304 NaN \n", + "305 NaN \n", + "306 NaN \n", + "307 NaN \n", + "308 NaN \n", + "309 NaN \n", + "310 NaN \n", + "311 NaN \n", + "312 NaN \n", + "313 NaN \n", + "314 NaN \n", + "315 NaN \n", + "316 NaN \n", + "317 NaN \n", + "318 NaN \n", + "319 NaN \n", + "320 NaN \n", + "321 NaN \n", + "322 NaN \n", + "323 NaN \n", + "324 NaN \n", + "325 NaN \n", + "326 NaN \n", + "327 NaN \n", + "328 NaN \n", + "329 NaN \n", + "330 NaN \n", + "331 NaN \n", + "332 NaN \n", + "333 NaN \n", + "334 NaN \n", + "335 NaN \n", + "336 NaN \n", + "337 NaN \n", + "338 NaN \n", + "339 NaN \n", + "340 NaN \n", + "341 NaN \n", + "342 NaN \n", + "343 NaN \n", + "344 NaN \n", + "345 NaN \n", + "346 NaN \n", + "347 NaN \n", + "348 NaN \n", + "349 NaN \n", + "350 NaN \n", + "351 NaN \n", + "352 NaN \n", + "353 NaN \n", + "354 NaN \n", + "355 NaN \n", + "356 NaN \n", + "357 NaN \n", + "358 NaN \n", + "359 0.0 \n", + "360 NaN \n", + "361 NaN \n", + "362 NaN \n", + "363 NaN \n", + "364 NaN \n", + "365 NaN \n", + "366 NaN \n", + "367 NaN \n", + "368 NaN \n", + "369 NaN \n", + "370 1.0 \n", + "371 2.0 \n", + "372 3.0 \n", + "373 NaN " + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# terms_summary(peroxisome).style.highlight_min(axis=1, props='font-weight:bold', numeric_only=True)\n", + "terms_summary(peroxisome)" + ] + }, + { + "cell_type": "markdown", + "id": "ccb68aa7", + "metadata": {}, + "source": [ + "## Sensory Ataxia" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "8562caa4", + "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", + "
modelmethodhas top hitin top 5in top 10size overlapsimilaritynum termsnum GO termsnr size overlapnr similaritymean p valuemin p valuemax p valueproportion significantnum novel
534N/AstandardTrueTrueTrue91.00e+009931.000.011.95e-050.041.000
535N/Astandard_no_ontologyFalseFalseFalse33.00e-014410.200.263.13e-041.000.750
528gpt-3.5-turbono_synopsisFalseFalseFalse17.69e-026500.000.802.24e-021.000.200
529gpt-3.5-turboontological_synopsisTrueTrueTrue17.69e-026510.140.801.95e-051.000.200
538N/ANoneTrueFalseFalse98.51e-031360131400.000.991.95e-051.000.010
530gpt-3.5-turbonarrative_synopsisFalseFalseFalse00.00e+003100.001.001.00e+001.000.000
531text-davinci-003no_synopsisFalseFalseFalse00.00e+007500.001.001.00e+001.000.001
532text-davinci-003ontological_synopsisFalseFalseFalse00.00e+005400.001.001.00e+001.000.001
533text-davinci-003narrative_synopsisFalseFalseFalse00.00e+008100.001.001.00e+001.000.000
536N/ArandomFalseFalseFalse00.00e+00151500.001.001.00e+001.000.009
537N/Arank_basedFalseFalseFalse00.00e+00151500.001.001.00e+001.000.000
\n", + "
" + ], + "text/plain": [ + " model method has top hit in top 5 in top 10 \\\n", + "534 N/A standard True True True \n", + "535 N/A standard_no_ontology False False False \n", + "528 gpt-3.5-turbo no_synopsis False False False \n", + "529 gpt-3.5-turbo ontological_synopsis True True True \n", + "538 N/A None True False False \n", + "530 gpt-3.5-turbo narrative_synopsis False False False \n", + "531 text-davinci-003 no_synopsis False False False \n", + "532 text-davinci-003 ontological_synopsis False False False \n", + "533 text-davinci-003 narrative_synopsis False False False \n", + "536 N/A random False False False \n", + "537 N/A rank_based False False False \n", + "\n", + " size overlap similarity num terms num GO terms nr size overlap \\\n", + "534 9 1.00e+00 9 9 3 \n", + "535 3 3.00e-01 4 4 1 \n", + "528 1 7.69e-02 6 5 0 \n", + "529 1 7.69e-02 6 5 1 \n", + "538 9 8.51e-03 1360 1314 0 \n", + "530 0 0.00e+00 3 1 0 \n", + "531 0 0.00e+00 7 5 0 \n", + "532 0 0.00e+00 5 4 0 \n", + "533 0 0.00e+00 8 1 0 \n", + "536 0 0.00e+00 15 15 0 \n", + "537 0 0.00e+00 15 15 0 \n", + "\n", + " nr similarity mean p value min p value max p value \\\n", + "534 1.00 0.01 1.95e-05 0.04 \n", + "535 0.20 0.26 3.13e-04 1.00 \n", + "528 0.00 0.80 2.24e-02 1.00 \n", + "529 0.14 0.80 1.95e-05 1.00 \n", + "538 0.00 0.99 1.95e-05 1.00 \n", + "530 0.00 1.00 1.00e+00 1.00 \n", + "531 0.00 1.00 1.00e+00 1.00 \n", + "532 0.00 1.00 1.00e+00 1.00 \n", + "533 0.00 1.00 1.00e+00 1.00 \n", + "536 0.00 1.00 1.00e+00 1.00 \n", + "537 0.00 1.00 1.00e+00 1.00 \n", + "\n", + " proportion significant num novel \n", + "534 1.00 0 \n", + "535 0.75 0 \n", + "528 0.20 0 \n", + "529 0.20 0 \n", + "538 0.01 0 \n", + "530 0.00 0 \n", + "531 0.00 1 \n", + "532 0.00 1 \n", + "533 0.00 0 \n", + "536 0.00 9 \n", + "537 0.00 0 " + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ataxia = df.query(f\"{GENESET} == 'sensory ataxia-0'\").sort_values(\"similarity\", ascending=False)\n", + "ataxia[[MODEL, METHOD] + eval_summary_cols] " + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "a744a21e", + "metadata": {}, + "outputs": [], + "source": [ + "pd.set_option('display.max_colwidth', None)\n", + "pd.set_option('display.max_rows', None)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "884f460d", + "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", + "
modelmethodgo term idsnovel labels
534N/Astandard[GO:0042552, GO:0008366, GO:0007272, GO:0007422, GO:0014037, GO:0010001, GO:0032287, GO:0006264, GO:0042063][]
535N/Astandard_no_ontology[GO:0021680, GO:0032287, GO:0006264, GO:0007422][]
528gpt-3.5-turbono_synopsis[GO:0032287, GO:0006606, GO:0015031, GO:0007599, GO:0006826][]
529gpt-3.5-turboontological_synopsis[GO:0042552, GO:0007600, GO:0016567, GO:0006260, GO:0015886][]
538N/ANone[GO:0021665, GO:0035284, GO:0014040, GO:0071837, GO:0006607, GO:0060170, GO:0005791, GO:0070417, GO:0008033, GO:0005739, GO:0043154, GO:0006096, GO:0005788, GO:0008139, GO:0060586, GO:0007165, GO:0051156, GO:0003677, GO:0000976, GO:0006839, GO:0075732, GO:0006268, GO:0045475, GO:0060173, GO:0006879, GO:0030200, GO:0007420, GO:0042391, GO:0050974, GO:0007028, GO:0003678, GO:0036494, GO:0043218, GO:0032991, GO:0048168, GO:0045444, GO:0001573, GO:0005790, GO:0032355, GO:0019901, GO:0098743, GO:0021612, GO:0034975, GO:0042564, GO:0048704, GO:0006986, GO:0098655, GO:0106074, GO:0043209, GO:0008381, GO:1904813, GO:0043005, GO:0003183, GO:0000981, GO:0030218, GO:0006801, GO:0034214, GO:0071333, GO:0034101, GO:0031410, GO:0099022, GO:0046686, GO:0065003, GO:0071260, GO:0032963, GO:0042982, GO:0061744, GO:0045893, GO:0034142, GO:0032287, GO:0005764, GO:0048143, GO:0002639, GO:0030154, GO:0140018, GO:0043231, GO:0007622, GO:0061629, GO:1904390, GO:0016887, GO:0001889, GO:0043524, GO:0002196, GO:0031069, GO:0005760, GO:0005634, GO:0032060, GO:0042474, GO:0006259, GO:0046718, GO:0003697, GO:0051087, GO:0034285, GO:0097577, GO:0042552, GO:0097367, GO:0014037, GO:0006419, GO:0048536, GO:0005789, ...][]
530gpt-3.5-turbonarrative_synopsis[GO:0030218][]
531text-davinci-003no_synopsis[GO:0007165, GO:0016192, GO:0015031, GO:0005643, GO:0006836][neurotransmitter transport]
532text-davinci-003ontological_synopsis[GO:0016567, GO:0015031, GO:0008380, GO:0006260][RNA splicing]
533text-davinci-003narrative_synopsis[GO:0032288][]
536N/Arandom[GO:0031410, GO:0042060, GO:0042475, GO:0050896, GO:0030175, GO:0043014, GO:0004758, GO:0030071, GO:0005694, GO:0008378, GO:0005886, GO:0006672, GO:0031623, GO:0070584, GO:0043588][wound healing, odontogenesis of dentin-containing tooth, filopodium, alpha-tubulin binding, serine C-palmitoyltransferase activity, regulation of mitotic metaphase/anaphase transition, galactosyltransferase activity, receptor internalization, mitochondrion morphogenesis]
537N/Arank_based[GO:0016020, GO:0005737, GO:0070062, GO:0005524, GO:0046872, GO:0005634, GO:0005576, GO:0042802, GO:0005829, GO:0005654, GO:0005886, GO:0005739, GO:0006357, GO:0005615, GO:0003723][]
\n", + "
" + ], + "text/plain": [ + " model method \\\n", + "534 N/A standard \n", + "535 N/A standard_no_ontology \n", + "528 gpt-3.5-turbo no_synopsis \n", + "529 gpt-3.5-turbo ontological_synopsis \n", + "538 N/A None \n", + "530 gpt-3.5-turbo narrative_synopsis \n", + "531 text-davinci-003 no_synopsis \n", + "532 text-davinci-003 ontological_synopsis \n", + "533 text-davinci-003 narrative_synopsis \n", + "536 N/A random \n", + "537 N/A rank_based \n", + "\n", + " go term ids \\\n", + "534 [GO:0042552, GO:0008366, GO:0007272, GO:0007422, GO:0014037, GO:0010001, GO:0032287, GO:0006264, GO:0042063] \n", + "535 [GO:0021680, GO:0032287, GO:0006264, GO:0007422] \n", + "528 [GO:0032287, GO:0006606, GO:0015031, GO:0007599, GO:0006826] \n", + "529 [GO:0042552, GO:0007600, GO:0016567, GO:0006260, GO:0015886] \n", + "538 [GO:0021665, GO:0035284, GO:0014040, GO:0071837, GO:0006607, GO:0060170, GO:0005791, GO:0070417, GO:0008033, GO:0005739, GO:0043154, GO:0006096, GO:0005788, GO:0008139, GO:0060586, GO:0007165, GO:0051156, GO:0003677, GO:0000976, GO:0006839, GO:0075732, GO:0006268, GO:0045475, GO:0060173, GO:0006879, GO:0030200, GO:0007420, GO:0042391, GO:0050974, GO:0007028, GO:0003678, GO:0036494, GO:0043218, GO:0032991, GO:0048168, GO:0045444, GO:0001573, GO:0005790, GO:0032355, GO:0019901, GO:0098743, GO:0021612, GO:0034975, GO:0042564, GO:0048704, GO:0006986, GO:0098655, GO:0106074, GO:0043209, GO:0008381, GO:1904813, GO:0043005, GO:0003183, GO:0000981, GO:0030218, GO:0006801, GO:0034214, GO:0071333, GO:0034101, GO:0031410, GO:0099022, GO:0046686, GO:0065003, GO:0071260, GO:0032963, GO:0042982, GO:0061744, GO:0045893, GO:0034142, GO:0032287, GO:0005764, GO:0048143, GO:0002639, GO:0030154, GO:0140018, GO:0043231, GO:0007622, GO:0061629, GO:1904390, GO:0016887, GO:0001889, GO:0043524, GO:0002196, GO:0031069, GO:0005760, GO:0005634, GO:0032060, GO:0042474, GO:0006259, GO:0046718, GO:0003697, GO:0051087, GO:0034285, GO:0097577, GO:0042552, GO:0097367, GO:0014037, GO:0006419, GO:0048536, GO:0005789, ...] \n", + "530 [GO:0030218] \n", + "531 [GO:0007165, GO:0016192, GO:0015031, GO:0005643, GO:0006836] \n", + "532 [GO:0016567, GO:0015031, GO:0008380, GO:0006260] \n", + "533 [GO:0032288] \n", + "536 [GO:0031410, GO:0042060, GO:0042475, GO:0050896, GO:0030175, GO:0043014, GO:0004758, GO:0030071, GO:0005694, GO:0008378, GO:0005886, GO:0006672, GO:0031623, GO:0070584, GO:0043588] \n", + "537 [GO:0016020, GO:0005737, GO:0070062, GO:0005524, GO:0046872, GO:0005634, GO:0005576, GO:0042802, GO:0005829, GO:0005654, GO:0005886, GO:0005739, GO:0006357, GO:0005615, GO:0003723] \n", + "\n", + " novel labels \n", + "534 [] \n", + "535 [] \n", + "528 [] \n", + "529 [] \n", + "538 [] \n", + "530 [] \n", + "531 [neurotransmitter transport] \n", + "532 [RNA splicing] \n", + "533 [] \n", + "536 [wound healing, odontogenesis of dentin-containing tooth, filopodium, alpha-tubulin binding, serine C-palmitoyltransferase activity, regulation of mitotic metaphase/anaphase transition, galactosyltransferase activity, receptor internalization, mitochondrion morphogenesis] \n", + "537 [] " + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ataxia[[MODEL, METHOD, GO_TERM_IDS, NOVEL_LABELS]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06560bd8", + "metadata": {}, + "outputs": [], + "source": [ + "terms_summary(ataxia)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "76c0b8ee", + "metadata": {}, + "outputs": [], + "source": [ + "def retrieve_payload(geneset, method):\n", + " for comp in comps:\n", + " if comp.name == geneset:\n", + " return comp.payloads[method]" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "17c4d4f6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary: These genes are involved in various processes related to the peripheral nervous system and nucleic acid metabolism, including myelination, DNA replication, and protein ubiquitination.\n", + "Mechanism: These genes may be involved in the maintenance, repair, and regulation of the peripheral nervous system and nucleic acids.\n", + "Enriched Terms: peripheral nervous system myelin maintenance; myelination; DNA replication; protein ubiquitination.\n" + ] + } + ], + "source": [ + "print(retrieve_payload(\"sensory ataxia-0\", \"gpt-3.5-turbo.ontological_synopsis\").response_text)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "2fb5f713", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary: Genes are involved in various neurological and metabolic disorders. Enriched terms include \"peripheral nervous system development,\" \"neurological system process,\" and \"mitochondrial DNA replication.\"\n", + "\n", + "Mechanism: The enriched terms suggest a common theme of neurological and metabolic dysfunction related to the peripheral nervous system and mitochondrial function.\n", + "\n", + "Enriched Terms: peripheral nervous system development; neurological system process; mitochondrial DNA replication.\n" + ] + } + ], + "source": [ + "print(retrieve_payload(\"sensory ataxia-0\", \"gpt-3.5-turbo.narrative_synopsis\").response_text)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "652ef2a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary: Enriched terms are related to myelin sheath formation, neuronal development, and protein processing.\n", + "Enriched Terms: Myelination; Neuron development; Protein folding; Protein targeting to ER; ATP binding; Axon ensheathment; Mitochondrial genome maintenance; Zinc ion binding.\n" + ] + } + ], + "source": [ + "print(retrieve_payload(\"sensory ataxia-0\", \"gpt-3.5-turbo.no_synopsis\").response_text)" + ] + }, + { + "cell_type": "markdown", + "id": "5876611c", + "metadata": {}, + "source": [ + "## Endocytosis" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "4df09ade", + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idlabelredundantstandardstandard no ontologyturbo gpt-3.5-turbo.ontological synopsisdav text-davinci-003.narrative synopsisdav text-davinci-003.ontological synopsisturbo gpt-3.5-turbo.narrative synopsisturbo gpt-3.5-turbo.no synopsisrank baseddav text-davinci-003.no synopsisrandom
0GO:0006907pinocytosisFalse0.01.03.0NaNNaNNaNNaNNaNNaNNaN
1GO:0006897endocytosisTrue1.06.00.01.013.00.01.0NaNNaNNaN
2GO:0044351macropinocytosisTrue2.00.0NaN5.03.0NaNNaNNaNNaNNaN
3GO:0016192vesicle-mediated transportTrue3.0NaNNaN3.0NaNNaNNaNNaNNaNNaN
4GO:0030100regulation of endocytosisFalse4.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
5GO:0006810transportTrue5.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
6GO:0051234establishment of localizationTrue6.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
7GO:0045807positive regulation of endocytosisTrue7.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
8GO:0060627regulation of vesicle-mediated transportTrue8.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
9GO:0051179localizationTrue9.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
10GO:0031410cytoplasmic vesicleFalse10.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
11GO:0097708intracellular vesicleTrue11.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
12GO:0050766positive regulation of phagocytosisTrue12.04.0NaNNaNNaNNaNNaNNaNNaNNaN
13GO:0048518positive regulation of biological processTrue13.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
14GO:0050764regulation of phagocytosisTrue14.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
15GO:0051128regulation of cellular component organizationTrue15.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
16GO:0031982vesicleTrue16.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
17GO:0150094amyloid-beta clearance by cellular catabolic processFalse17.03.0NaNNaNNaNNaNNaNNaNNaNNaN
18GO:0006909phagocytosisTrue18.017.04.0NaN10.0NaNNaNNaNNaNNaN
19GO:0051049regulation of transportTrue19.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
20GO:0006898receptor-mediated endocytosisTrue20.02.0NaNNaNNaNNaNNaNNaNNaNNaN
21GO:0051050positive regulation of transportTrue21.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
22GO:0005041low-density lipoprotein particle receptor activityTrue22.05.0NaNNaNNaNNaNNaNNaNNaNNaN
23GO:0030139endocytic vesicleTrue23.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
24GO:0030228lipoprotein particle receptor activityTrue24.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
25GO:0030666endocytic vesicle membraneTrue25.018.0NaNNaNNaNNaNNaNNaNNaNNaN
26GO:0097242amyloid-beta clearanceTrue26.022.0NaNNaNNaNNaNNaNNaNNaNNaN
27GO:0051130positive regulation of cellular component organizationTrue27.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
28GO:0060907positive regulation of macrophage cytokine productionTrue28.08.0NaNNaNNaNNaNNaNNaNNaNNaN
29GO:0032879regulation of localizationTrue29.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
30GO:0048522positive regulation of cellular processTrue30.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
31GO:0002277myeloid dendritic cell activation involved in immune responseFalse31.09.0NaNNaNNaNNaNNaNNaNNaNNaN
32GO:0030659cytoplasmic vesicle membraneTrue32.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
33GO:0012506vesicle membraneTrue33.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
34GO:0061081positive regulation of myeloid leukocyte cytokine production involved in immune responseTrue34.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
35GO:0010935regulation of macrophage cytokine productionTrue35.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
36GO:0048583regulation of response to stimulusFalse36.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
37GO:1905167positive regulation of lysosomal protein catabolic processTrue37.011.0NaNNaNNaNNaNNaNNaNNaNNaN
38GO:0009894regulation of catabolic processTrue38.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
39GO:0023051regulation of signalingFalse39.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
40GO:0051641cellular localizationTrue40.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
41GO:1904352positive regulation of protein catabolic process in the vacuoleTrue41.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
42GO:0070508cholesterol importTrue42.013.0NaNNaNNaNNaNNaNNaNNaNNaN
43GO:0031347regulation of defense responseTrue43.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
44GO:0005794Golgi apparatusFalse44.014.0NaNNaNNaNNaNNaNNaNNaNNaN
45GO:1901700response to oxygen-containing compoundFalse45.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
46GO:0061024membrane organizationFalse46.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
47GO:0009966regulation of signal transductionTrue47.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
48GO:0015031protein transportTrue48.0NaNNaN2.0NaNNaNNaNNaNNaNNaN
49GO:0048523negative regulation of cellular processFalse49.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
50GO:0032429regulation of phospholipase A2 activityFalseNaN7.0NaNNaNNaNNaNNaNNaNNaNNaN
51GO:0034381plasma lipoprotein particle clearanceFalseNaN10.0NaNNaNNaNNaNNaNNaNNaNNaN
52GO:0031623receptor internalizationFalseNaN12.0NaNNaNNaNNaNNaNNaNNaNNaN
53GO:0009931calcium-dependent protein serine/threonine kinase activityFalseNaN15.0NaNNaNNaNNaNNaNNaNNaNNaN
54GO:0005905clathrin-coated pitFalseNaN16.0NaNNaNNaNNaNNaNNaNNaNNaN
55GO:0032050clathrin heavy chain bindingFalseNaN19.0NaNNaNNaNNaNNaNNaNNaNNaN
56GO:0030299intestinal cholesterol absorptionFalseNaN20.0NaNNaNNaNNaNNaNNaNNaNNaN
57GO:0001540amyloid-beta bindingFalseNaN21.0NaNNaNNaNNaNNaNNaNNaNNaN
58GO:0034383low-density lipoprotein particle clearanceFalseNaN23.0NaNNaNNaNNaNNaNNaNNaNNaN
59GO:0032760positive regulation of tumor necrosis factor productionFalseNaN24.0NaNNaNNaNNaNNaNNaNNaNNaN
60GO:0042953lipoprotein transportFalseNaN25.0NaNNaNNaNNaNNaNNaNNaNNaN
61GO:0071404cellular response to low-density lipoprotein particle stimulusFalseNaN26.0NaNNaNNaNNaNNaNNaNNaNNaN
62GO:0030169low-density lipoprotein particle bindingFalseNaN27.0NaNNaNNaNNaNNaNNaNNaNNaN
63actin filament formationNoneFalseNaNNaNNaN0.0NaNNaNNaNNaNNaNNaN
64lipid and fatty acid metabolismNoneFalseNaNNaNNaN4.0NaNNaNNaNNaNNaNNaN
65GO:0007155cell adhesionFalseNaNNaNNaN6.0NaNNaNNaNNaNNaNNaN
66intracellular traffickingNoneFalseNaNNaN1.0NaNNaN2.0NaNNaNNaNNaN
67GO:0005480obsolete vesicle transportFalseNaNNaN2.0NaNNaNNaNNaNNaNNaNNaN
68GO:0055085transmembrane transportFalseNaNNaN5.0NaNNaNNaNNaNNaNNaNNaN
69GO:0006893Golgi to plasma membrane transportFalseNaNNaN6.0NaNNaNNaNNaNNaNNaNNaN
70protein binding activityNoneFalseNaNNaNNaNNaN0.0NaNNaNNaNNaNNaN
71GO:0005886plasma membraneFalseNaNNaNNaNNaN1.0NaNNaN11.0NaNNaN
72small gtpase binding activityNoneFalseNaNNaNNaNNaN2.0NaNNaNNaNNaNNaN
73GO:0043001Golgi to plasma membrane protein transportFalseNaNNaNNaNNaN4.0NaNNaNNaNNaNNaN
74tyrosine kinase activityNoneFalseNaNNaNNaNNaN5.0NaNNaNNaNNaNNaN
75GO:0009986cell surfaceFalseNaNNaNNaNNaN6.0NaNNaNNaNNaNNaN
76cytoskeletal protein binding activityNoneFalseNaNNaNNaNNaN7.0NaNNaNNaNNaNNaN
77GO:0005783endoplasmic reticulumFalseNaNNaNNaNNaN8.0NaNNaNNaNNaNNaN
78GO:0032456endocytic recyclingFalseNaNNaNNaNNaN9.0NaNNaNNaNNaNNaN
79GO:0051260protein homooligomerizationFalseNaNNaNNaNNaN11.0NaNNaNNaNNaNNaN
80GO:0097320plasma membrane tubulationFalseNaNNaNNaNNaN12.0NaNNaNNaNNaNNaN
81GO:0010468regulation of gene expressionFalseNaNNaNNaNNaN14.0NaNNaNNaNNaNNaN
82GO:0048010vascular endothelial growth factor receptor signaling pathwayFalseNaNNaNNaNNaN15.0NaNNaNNaNNaNNaN
83GO:0007010cytoskeleton organizationFalseNaNNaNNaNNaNNaN1.0NaNNaNNaNNaN
84GO:0016197endosomal transportFalseNaNNaNNaNNaNNaNNaN0.0NaNNaNNaN
85GO:0007041lysosomal transportFalseNaNNaNNaNNaNNaNNaN2.0NaNNaNNaN
86g-protein signalling pathwayNoneFalseNaNNaNNaNNaNNaNNaNNaNNaN0.0NaN
87mapk signalling pathwayNoneFalseNaNNaNNaNNaNNaNNaNNaNNaN1.0NaN
88GO:0006631fatty acid metabolic processFalseNaNNaNNaNNaNNaNNaNNaNNaN2.0NaN
89calcium signalling pathwayNoneFalseNaNNaNNaNNaNNaNNaNNaNNaN3.0NaN
90cell membrane composition and organizationNoneFalseNaNNaNNaNNaNNaNNaNNaNNaN4.0NaN
91protein kinase signallingNoneFalseNaNNaNNaNNaNNaNNaNNaNNaN5.0NaN
92apoptosis regulationNoneFalseNaNNaNNaNNaNNaNNaNNaNNaN6.0NaN
93GO:0140105interleukin-10-mediated signaling pathwayFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN0.0
94GO:0016363nuclear matrixFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0
95GO:0016579protein deubiquitinationFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN2.0
96GO:0007626locomotory behaviorFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN3.0
97GO:0008427calcium-dependent protein kinase inhibitor activityFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN4.0
98GO:0050255ribitol 2-dehydrogenase activityFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN5.0
99GO:0000228nuclear chromosomeFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN6.0
100GO:0001917photoreceptor inner segmentFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN7.0
101GO:0007165signal transductionFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN8.0
102GO:0035578azurophil granule lumenFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN9.0
103GO:0000976transcription cis-regulatory region bindingFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN10.0
104GO:0005576extracellular regionFalseNaNNaNNaNNaNNaNNaNNaN13.0NaN11.0
105GO:0009887animal organ morphogenesisFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN12.0
106GO:0043085positive regulation of catalytic activityFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN13.0
107GO:0042742defense response to bacteriumFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN14.0
108GO:0098655monoatomic cation transmembrane transportFalseNaNNaNNaNNaNNaNNaNNaNNaNNaN15.0
109GO:0006357regulation of transcription by RNA polymerase IIFalseNaNNaNNaNNaNNaNNaNNaN0.0NaNNaN
110GO:0046872metal ion bindingFalseNaNNaNNaNNaNNaNNaNNaN1.0NaNNaN
111GO:0016020membraneFalseNaNNaNNaNNaNNaNNaNNaN2.0NaNNaN
112GO:0005739mitochondrionFalseNaNNaNNaNNaNNaNNaNNaN3.0NaNNaN
113GO:0003723RNA bindingFalseNaNNaNNaNNaNNaNNaNNaN4.0NaNNaN
114GO:0005615extracellular spaceFalseNaNNaNNaNNaNNaNNaNNaN5.0NaNNaN
115GO:0005829cytosolFalseNaNNaNNaNNaNNaNNaNNaN6.0NaNNaN
116GO:0042802identical protein bindingFalseNaNNaNNaNNaNNaNNaNNaN7.0NaNNaN
117GO:0045944positive regulation of transcription by RNA polymerase IIFalseNaNNaNNaNNaNNaNNaNNaN8.0NaNNaN
118GO:0005524ATP bindingFalseNaNNaNNaNNaNNaNNaNNaN9.0NaNNaN
119GO:0070062extracellular exosomeFalseNaNNaNNaNNaNNaNNaNNaN10.0NaNNaN
120GO:0005737cytoplasmFalseNaNNaNNaNNaNNaNNaNNaN12.0NaNNaN
121GO:0005634nucleusFalseNaNNaNNaNNaNNaNNaNNaN14.0NaNNaN
122GO:0005654nucleoplasmFalseNaNNaNNaNNaNNaNNaNNaN15.0NaNNaN
\n", + "
" + ], + "text/plain": [ + " id \\\n", + "0 GO:0006907 \n", + "1 GO:0006897 \n", + "2 GO:0044351 \n", + "3 GO:0016192 \n", + "4 GO:0030100 \n", "5 GO:0006810 \n", "6 GO:0051234 \n", "7 GO:0045807 \n", @@ -11981,148 +16606,1309 @@ "122 15.0 NaN NaN " ] }, - "execution_count": 35, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "endocytosis = df.query(f\"{GENESET} == 'endocytosis-0'\").sort_values(\"similarity\", ascending=False)\n", + "terms_summary(endocytosis)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "e9c3c720", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "I will give you a list of genes together with descriptions of their functions.\n", + "Perform a term enrichment test on these genes.\n", + "i.e. tell me what the commonalities are in their function.\n", + "Make use of classification hierarchies when you do this.\n", + "Only report gene functions in common, not diseases.\n", + "e.g if gene1 is involved in \"toe bone growth\" and gene2 is involved in \"finger morphogenesis\"\n", + "then the term \"digit development\" would be enriched as represented by gene1 and gene2.\n", + "Only include terms that are statistically over-represented.\n", + "Also include a hypothesis of the underlying biological mechanism or pathway.\n", + "\n", + "Provide results in the format\n", + "\n", + "Summary: \n", + "Mechanism: \n", + "Enriched Terms: ; ; \n", + "\n", + "###\n", + "\n", + "Here are the gene summaries:\n", + "DOCK2: The protein encoded by this gene belongs to the CDM protein family. It is specifically expressed in hematopoietic cells and is predominantly expressed in peripheral blood leukocytes. The protein is involved in remodeling of the actin cytoskeleton required for lymphocyte migration in response to chemokine signaling. It activates members of the Rho family of GTPases, for example RAC1 and RAC2, by acting as a guanine nucleotide exchange factor (GEF) to exchange bound GDP for free GTP. Mutations in this gene result in immunodeficiency 40 (IMD40), a combined form of immunodeficiency that affects T cell number and function, also with variable defects in B cell and NK cell function. [provided by RefSeq, May 2018]\n", + "RAB34: This gene encodes a protein belonging to the RAB family of proteins, which are small GTPases involved in protein transport. This family member is a Golgi-bound member of the secretory pathway that is involved in the repositioning of lysosomes and the activation of macropinocytosis. Alternative splicing of this gene results in multiple transcript variants. An alternatively spliced transcript variant produces the nine-amino acid residue-repeats (NARR) protein, which is a functionally distinct nucleolar protein resulting from a different reading frame. [provided by RefSeq, Dec 2016]\n", + "PPT1: The protein encoded by this gene is a small glycoprotein involved in the catabolism of lipid-modified proteins during lysosomal degradation. The encoded enzyme removes thioester-linked fatty acyl groups such as palmitate from cysteine residues. Defects in this gene are a cause of infantile neuronal ceroid lipofuscinosis 1 (CLN1, or INCL) and neuronal ceroid lipofuscinosis 4 (CLN4). Two transcript variants encoding different isoforms have been found for this gene.[provided by RefSeq, Dec 2008]\n", + "EHD4: Enables cadherin binding activity. Involved in endocytic recycling and protein homooligomerization. Located in endoplasmic reticulum and recycling endosome membrane. [provided by Alliance of Genome Resources, Apr 2022]\n", + "LRP1: This gene encodes a member of the low-density lipoprotein receptor family of proteins. The encoded preproprotein is proteolytically processed by furin to generate 515 kDa and 85 kDa subunits that form the mature receptor (PMID: 8546712). This receptor is involved in several cellular processes, including intracellular signaling, lipid homeostasis, and clearance of apoptotic cells. In addition, the encoded protein is necessary for the alpha 2-macroglobulin-mediated clearance of secreted amyloid precursor protein and beta-amyloid, the main component of amyloid plaques found in Alzheimer patients. Expression of this gene decreases with age and has been found to be lower than controls in brain tissue from Alzheimer's disease patients. [provided by RefSeq, Oct 2015]\n", + "MAPKAPK3: This gene encodes a member of the Ser/Thr protein kinase family. This kinase functions as a mitogen-activated protein kinase (MAP kinase)- activated protein kinase. MAP kinases are also known as extracellular signal-regulated kinases (ERKs), act as an integration point for multiple biochemical signals. This kinase was shown to be activated by growth inducers and stress stimulation of cells. In vitro studies demonstrated that ERK, p38 MAP kinase and Jun N-terminal kinase were all able to phosphorylate and activate this kinase, which suggested the role of this kinase as an integrative element of signaling in both mitogen and stress responses. This kinase was reported to interact with, phosphorylate and repress the activity of E47, which is a basic helix-loop-helix transcription factor known to be involved in the regulation of tissue-specific gene expression and cell differentiation. Alternate splicing results in multiple transcript variants that encode the same protein. [provided by RefSeq, Sep 2011]\n", + "AHSG: The protein encoded by this gene is a negatively-charged serum glycoprotein that is synthesized by hepatocytes. The encoded protein consists of two polypeptide chains, which are both cleaved from a proprotein encoded from a single mRNA. It is involved in several processes, including endocytosis, brain development, and the formation of bone tissue. Defects in this gene are a cause of susceptibility to leanness. [provided by RefSeq, Aug 2017]\n", + "MAPKAPK2: This gene encodes a member of the Ser/Thr protein kinase family. This kinase is regulated through direct phosphorylation by p38 MAP kinase. In conjunction with p38 MAP kinase, this kinase is known to be involved in many cellular processes including stress and inflammatory responses, nuclear export, gene expression regulation and cell proliferation. Heat shock protein HSP27 was shown to be one of the substrates of this kinase in vivo. Two transcript variants encoding two different isoforms have been found for this gene. [provided by RefSeq, Jul 2008]\n", + "CD36: The protein encoded by this gene is the fourth major glycoprotein of the platelet surface and serves as a receptor for thrombospondin in platelets and various cell lines. Since thrombospondins are widely distributed proteins involved in a variety of adhesive processes, this protein may have important functions as a cell adhesion molecule. It binds to collagen, thrombospondin, anionic phospholipids and oxidized LDL. It directly mediates cytoadherence of Plasmodium falciparum parasitized erythrocytes and it binds long chain fatty acids and may function in the transport and/or as a regulator of fatty acid transport. Mutations in this gene cause platelet glycoprotein deficiency. Multiple alternatively spliced transcript variants have been found for this gene. [provided by RefSeq, Feb 2014]\n", + "DNM2: Dynamins represent one of the subfamilies of GTP-binding proteins. These proteins share considerable sequence similarity over the N-terminal portion of the molecule, which contains the GTPase domain. Dynamins are associated with microtubules. They have been implicated in cell processes such as endocytosis and cell motility, and in alterations of the membrane that accompany certain activities such as bone resorption by osteoclasts. Dynamins bind many proteins that bind actin and other cytoskeletal proteins. Dynamins can also self-assemble, a process that stimulates GTPase activity. Five alternatively spliced transcripts encoding different proteins have been described. Additional alternatively spliced transcripts may exist, but their full-length nature has not been determined. [provided by RefSeq, Jun 2010]\n", + "LDLR: The low density lipoprotein receptor (LDLR) gene family consists of cell surface proteins involved in receptor-mediated endocytosis of specific ligands. The encoded protein is normally bound at the cell membrane, where it binds low density lipoprotein/cholesterol and is taken into the cell. Lysosomes release the cholesterol, which is made available for repression of microsomal enzyme 3-hydroxy-3-methylglutaryl coenzyme A (HMG CoA) reductase, the rate-limiting step in cholesterol synthesis. At the same time, a reciprocal stimulation of cholesterol ester synthesis takes place. Mutations in this gene cause the autosomal dominant disorder, familial hypercholesterolemia. Alternate splicing results in multiple transcript variants.[provided by RefSeq, May 2022]\n", + "PYCARD: This gene encodes an adaptor protein that is composed of two protein-protein interaction domains: a N-terminal PYRIN-PAAD-DAPIN domain (PYD) and a C-terminal caspase-recruitment domain (CARD). The PYD and CARD domains are members of the six-helix bundle death domain-fold superfamily that mediates assembly of large signaling complexes in the inflammatory and apoptotic signaling pathways via the activation of caspase. In normal cells, this protein is localized to the cytoplasm; however, in cells undergoing apoptosis, it forms ball-like aggregates near the nuclear periphery. Two transcript variants encoding different isoforms have been found for this gene. [provided by RefSeq, Jul 2008]\n", + "UBE3A: This gene encodes an E3 ubiquitin-protein ligase, part of the ubiquitin protein degradation system. This imprinted gene is maternally expressed in brain and biallelically expressed in other tissues. Maternally inherited deletion of this gene causes Angelman Syndrome, characterized by severe motor and intellectual retardation, ataxia, hypotonia, epilepsy, absence of speech, and characteristic facies. The protein also interacts with the E6 protein of human papillomavirus types 16 and 18, resulting in ubiquitination and proteolysis of tumor protein p53. Alternative splicing of this gene results in three transcript variants encoding three isoforms with different N-termini. Additional transcript variants have been described, but their full length nature has not been determined. [provided by RefSeq, Jul 2008]\n", + "SNX5: This gene encodes a member of the sorting nexin family. Members of this family contain a phox (PX) domain, which is a phosphoinositide binding domain, and are involved in intracellular trafficking. This protein functions in endosomal sorting, the phosphoinositide-signaling pathway, and macropinocytosis. This gene may play a role in the tumorigenesis of papillary thyroid carcinoma. Alternative splicing results in multiple transcript variants encoding different isoforms. [provided by RefSeq, Sep 2013]\n", + "SNX33: The protein encoded by this gene is involved in cytoskeletal reorganization, vesicle trafficking, endocytosis, and mitosis. The encoded protein is essential for the creation of the cleavage furrow during mitosis and for completion of mitosis. Two transcript variants encoding different isoforms have been found for this gene. [provided by RefSeq, Dec 2015]\n", + "CARMIL1: Involved in several processes, including actin filament network formation; plasma membrane bounded cell projection organization; and positive regulation of cellular component organization. Located in several cellular components, including lamellipodium; macropinosome; and nuclear speck. [provided by Alliance of Genome Resources, Apr 2022]\n", + "\n", + "Summary and enriched terms:\n", + "\n" + ] + } + ], + "source": [ + "print(retrieve_payload(\"endocytosis-0\", \"gpt-3.5-turbo.narrative_synopsis\").prompt)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "6357dffb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary: Genes involved in intracellular trafficking, endocytosis, and cytoskeletal reorganization processes are enriched.\n", + "\n", + "Mechanism: These genes likely play a role in the regulation and organization of cellular processes through the endocytic pathway and cytoskeleton.\n", + "\n", + "Enriched Terms: Endocytosis; Cytoskeleton organization; Intracellular trafficking.\n" + ] + } + ], + "source": [ + "print(retrieve_payload(\"endocytosis-0\", \"gpt-3.5-turbo.narrative_synopsis\").response_text)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "4f101e21", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "I will give you a list of genes together with descriptions of their functions.\n", + "Perform a term enrichment test on these genes.\n", + "i.e. tell me what the commonalities are in their function.\n", + "Make use of classification hierarchies when you do this.\n", + "Only report gene functions in common, not diseases.\n", + "e.g if gene1 is involved in \"toe bone growth\" and gene2 is involved in \"finger morphogenesis\"\n", + "then the term \"digit development\" would be enriched as represented by gene1 and gene2.\n", + "Only include terms that are statistically over-represented.\n", + "Also include a hypothesis of the underlying biological mechanism or pathway.\n", + "\n", + "Provide results in the format\n", + "\n", + "Summary: \n", + "Mechanism: \n", + "Enriched Terms: ; ; \n", + "\n", + "###\n", + "\n", + "Here are the gene summaries:\n", + "DOCK2: Enables T cell receptor binding activity and guanyl-nucleotide exchange factor activity. Predicted to be involved in several processes, including macropinocytosis; myeloid dendritic cell activation involved in immune response; and myoblast fusion. Predicted to act upstream of or within several processes, including T cell activation; immunological synapse formation; and membrane raft polarization. Located in extracellular exosome and membrane. Implicated in immunodeficiency 40.\n", + "RAB34: Enables GTP-dependent protein binding activity and small GTPase binding activity. Involved in several processes, including Golgi to plasma membrane protein transport; lysosome localization; and phagosome-lysosome fusion. Located in Golgi cisterna; perinuclear region of cytoplasm; and phagocytic vesicle.\n", + "PPT1: Enables lysophosphatidic acid binding activity; sulfatide binding activity; and thiolester hydrolase activity. Involved in several processes, including lysosomal lumen acidification; positive regulation of endocytosis; and protein depalmitoylation. Acts upstream of or within pinocytosis and receptor-mediated endocytosis. Located in several cellular components, including lysosome; membrane raft; and synaptic vesicle. Implicated in neuronal ceroid lipofuscinosis 1.\n", + "EHD4: Enables cadherin binding activity. Involved in endocytic recycling and protein homooligomerization. Located in endoplasmic reticulum and recycling endosome membrane.\n", + "LRP1: Enables alpha-2 macroglobulin receptor activity; apolipoprotein binding activity; and clathrin heavy chain binding activity. Involved in several processes, including amyloid-beta clearance by cellular catabolic process; amyloid-beta clearance by transcytosis; and positive regulation of lysosomal protein catabolic process. Located in basolateral plasma membrane and early endosome. Part of receptor complex. Implicated in Alzheimer's disease; keratosis pilaris atrophicans; myocardial infarction; and sciatic neuropathy.\n", + "MAPKAPK3: Enables protein serine/threonine kinase activity. Involved in peptidyl-serine phosphorylation and response to cytokine. Located in nucleoplasm. Implicated in patterned macular dystrophy 3.\n", + "AHSG: Predicted to enable endopeptidase inhibitor activity. Involved in acute-phase response; positive regulation of phagocytosis; and regulation of inflammatory response. Located in Golgi apparatus. Implicated in alopecia-mental retardation syndrome 1; coronary artery disease; and type 2 diabetes mellitus. Biomarker of gestational diabetes; myocardial infarction; obesity; and type 2 diabetes mellitus.\n", + "MAPKAPK2: Enables protein serine/threonine kinase activity. Involved in several processes, including peptidyl-serine phosphorylation; regulation of gene expression; and vascular endothelial growth factor receptor signaling pathway. Located in centrosome; cytoplasm; and nucleoplasm.\n", + "CD36: Enables several functions, including amyloid-beta binding activity; fatty acid transmembrane transporter activity; and low-density lipoprotein particle binding activity. Involved in several processes, including amyloid-beta clearance by cellular catabolic process; lipid transport; and second-messenger-mediated signaling. Located in several cellular components, including Golgi apparatus; cell surface; and membrane raft. Part of receptor complex. Implicated in several diseases, including blood platelet disease (multiple); hemolytic-uremic syndrome; osteoarthritis; pulmonary tuberculosis; and type 2 diabetes mellitus. Biomarker of several diseases, including autoimmune disease (multiple); myeloid neoplasm (multiple); myositis (multiple); rheumatic heart disease; and sickle cell anemia.\n", + "DNM2: Enables SH3 domain binding activity. Involved in negative regulation of membrane tubulation; receptor internalization; and transferrin transport. Located in several cellular components, including Golgi apparatus; microtubule; and postsynaptic membrane. Implicated in Charcot-Marie-Tooth disease dominant intermediate B; centronuclear myopathy 1; and lethal congenital contracture syndrome.\n", + "LDLR: Enables several functions, including low-density lipoprotein particle binding activity; low-density lipoprotein particle receptor activity; and very-low-density lipoprotein particle receptor activity. Involved in several processes, including cholesterol homeostasis; cholesterol transport; and long-term memory. Located in several cellular components, including clathrin-coated pit; endosome; and external side of plasma membrane. Part of PCSK9-LDLR complex and receptor complex. Implicated in Alzheimer's disease; arteriosclerosis; familial hypercholesterolemia; hepatitis C; and migraine without aura. Biomarker of systemic lupus erythematosus.\n", + "PYCARD: Enables several functions, including Pyrin domain binding activity; cytoskeletal protein binding activity; and signaling receptor binding activity. Involved in several processes, including regulation of DNA-binding transcription factor activity; regulation of cytokine production; and regulation of signal transduction. Located in several cellular components, including Golgi membrane; inflammasome complex; and nuclear lumen. Part of inflammasome complex. Colocalizes with IkappaB kinase complex.\n", + "UBE3A: Enables ubiquitin protein ligase activity. Involved in several processes, including protein ubiquitination; regulation of protein metabolic process; and response to steroid hormone. Predicted to be located in cytoplasm and nucleus. Predicted to be part of proteasome complex. Predicted to be active in cytosol and glutamatergic synapse. Implicated in Angelman syndrome.\n", + "SNX5: Enables dynactin binding activity and phosphatidylinositol binding activity. Involved in several processes, including pinocytosis; positive regulation of insulin receptor signaling pathway; and retrograde transport, endosome to Golgi. Located in cytosol; macropinocytic cup; and tubular endosome. Is extrinsic component of cytoplasmic side of plasma membrane and extrinsic component of endosome membrane. Part of perinuclear region of cytoplasm and retromer complex. Colocalizes with early endosome membrane.\n", + "SNX33: Enables identical protein binding activity. Involved in several processes, including cytoskeleton-dependent cytokinesis; plasma membrane tubulation; and regulation of protein localization to cell surface. Located in cytoplasmic vesicle; cytosol; and membrane. Is extrinsic component of membrane.\n", + "CARMIL1: Involved in several processes, including actin filament network formation; plasma membrane bounded cell projection organization; and positive regulation of cellular component organization. Located in several cellular components, including lamellipodium; macropinosome; and nuclear speck.\n", + "\n", + "Summary and enriched terms:\n", + "\n" + ] + } + ], + "source": [ + "print(retrieve_payload(\"endocytosis-0\", \"gpt-3.5-turbo.ontological_synopsis\").prompt)" + ] + }, + { + "cell_type": "markdown", + "id": "fbb0970c", + "metadata": {}, + "source": [ + "## Hallucinations" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "f29c3ac3", + "metadata": {}, + "outputs": [], + "source": [ + "def hallucinatons(df, model):\n", + " novel_term_map = defaultdict(dict)\n", + " for _, row in df.iterrows():\n", + " gs = row[GENESET]\n", + " #if not gs.endswith(\"-0\"):\n", + " # continue\n", + " gs = gs.replace(\"-0\", \"\")\n", + " for lbl in row[NOVEL_LABELS]:\n", + " if row[MODEL] != model:\n", + " continue\n", + " m = row[METHOD]\n", + " novel_term_map[lbl][\"NAME\"] = lbl\n", + " if gs not in novel_term_map[lbl]:\n", + " novel_term_map[lbl][m] = []\n", + " novel_term_map[lbl][m].append(gs)\n", + " novel_df = pd.DataFrame(novel_term_map.values())\n", + " return novel_df" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "1e9ce75e", + "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", + "
NAMEno_synopsisnarrative_synopsisontological_synopsis
0response to vitamin E[EDS]NaNNaN
1regulation of collagen catabolic process[EDS]NaNNaN
2negative regulation of collagen biosynthetic process[EDS]NaNNaN
3Golgi organization[HALLMARK_HEDGEHOG_SIGNALING]NaNNaN
4positive regulation of JNK cascade[HALLMARK_HEDGEHOG_SIGNALING]NaNNaN
5glycogen catabolic process[HALLMARK_MTORC1_SIGNALING]NaNNaN
6proton motive force-driven mitochondrial ATP synthesisNaN[HALLMARK_MTORC1_SIGNALING-1]NaN
7regulation of stem cell differentiation[Yamanaka-TFs]NaNNaN
8regulation of cell growth[Yamanaka-TFs-1]NaNNaN
9obsolete transcription factor activity, protein binding[bicluster_RNAseqDB_0-1][tf-downreg-colorectal-1][bicluster_RNAseqDB_0-1]
10platelet degranulation[amigo-example-1]NaNNaN
11positive regulation of smooth muscle cell proliferation[amigo-example-1]NaNNaN
12positive regulation of cell adhesion mediated by integrin[amigo-example-1]NaNNaN
13phosphatidylinositol-mediated signaling[term-GO:0007212]NaNNaN
14calcium ion binding[term-GO:0007212]NaNNaN
15cyclic nucleotide binding[term-GO:0007212]NaNNaN
16calcium-mediated signaling[term-GO:0007212-1]NaNNaN
17dendrite development[term-GO:0007212-1]NaNNaN
18calcium-dependent protein bindingNaN[go-postsynapse-calcium-transmembrane]NaN
19regulation of neurotransmitter secretionNaN[go-postsynapse-calcium-transmembrane-1]NaN
20protein folding in endoplasmic reticulumNaN[hydrolase activity, hydrolyzing O-glycosyl compounds]NaN
21immunoglobulin production[ig-receptor-binding-2022-1][ig-receptor-binding-2022][ig-receptor-binding-2022-1]
22B cell activation[ig-receptor-binding-2022-1]NaNNaN
23carbohydrate metabolic processNaN[molecular sequestering]NaN
24obsolete iron ion homeostasisNaN[molecular sequestering]NaN
25obsolete cellular carbohydrate metabolic process[mtorc1-1]NaNNaN
26pyrimidine nucleoside metabolic process[mtorc1-1]NaNNaN
27obsolete covalent chromatin modificationNaNNaN[progeria]
28nuclear matrix organizationNaN[progeria]NaN
29regulation of neurotransmitter levels[sensory ataxia-1]NaNNaN
30obsolete RNA polymerase II transcription factor activity[tf-downreg-colorectal-1]NaNNaN
31obsolete RNA polymerase III transcription factor activityNaN[tf-downreg-colorectal-1]NaN
\n", + "
" + ], + "text/plain": [ + " NAME \\\n", + "0 response to vitamin E \n", + "1 regulation of collagen catabolic process \n", + "2 negative regulation of collagen biosynthetic process \n", + "3 Golgi organization \n", + "4 positive regulation of JNK cascade \n", + "5 glycogen catabolic process \n", + "6 proton motive force-driven mitochondrial ATP synthesis \n", + "7 regulation of stem cell differentiation \n", + "8 regulation of cell growth \n", + "9 obsolete transcription factor activity, protein binding \n", + "10 platelet degranulation \n", + "11 positive regulation of smooth muscle cell proliferation \n", + "12 positive regulation of cell adhesion mediated by integrin \n", + "13 phosphatidylinositol-mediated signaling \n", + "14 calcium ion binding \n", + "15 cyclic nucleotide binding \n", + "16 calcium-mediated signaling \n", + "17 dendrite development \n", + "18 calcium-dependent protein binding \n", + "19 regulation of neurotransmitter secretion \n", + "20 protein folding in endoplasmic reticulum \n", + "21 immunoglobulin production \n", + "22 B cell activation \n", + "23 carbohydrate metabolic process \n", + "24 obsolete iron ion homeostasis \n", + "25 obsolete cellular carbohydrate metabolic process \n", + "26 pyrimidine nucleoside metabolic process \n", + "27 obsolete covalent chromatin modification \n", + "28 nuclear matrix organization \n", + "29 regulation of neurotransmitter levels \n", + "30 obsolete RNA polymerase II transcription factor activity \n", + "31 obsolete RNA polymerase III transcription factor activity \n", + "\n", + " no_synopsis \\\n", + "0 [EDS] \n", + "1 [EDS] \n", + "2 [EDS] \n", + "3 [HALLMARK_HEDGEHOG_SIGNALING] \n", + "4 [HALLMARK_HEDGEHOG_SIGNALING] \n", + "5 [HALLMARK_MTORC1_SIGNALING] \n", + "6 NaN \n", + "7 [Yamanaka-TFs] \n", + "8 [Yamanaka-TFs-1] \n", + "9 [bicluster_RNAseqDB_0-1] \n", + "10 [amigo-example-1] \n", + "11 [amigo-example-1] \n", + "12 [amigo-example-1] \n", + "13 [term-GO:0007212] \n", + "14 [term-GO:0007212] \n", + "15 [term-GO:0007212] \n", + "16 [term-GO:0007212-1] \n", + "17 [term-GO:0007212-1] \n", + "18 NaN \n", + "19 NaN \n", + "20 NaN \n", + "21 [ig-receptor-binding-2022-1] \n", + "22 [ig-receptor-binding-2022-1] \n", + "23 NaN \n", + "24 NaN \n", + "25 [mtorc1-1] \n", + "26 [mtorc1-1] \n", + "27 NaN \n", + "28 NaN \n", + "29 [sensory ataxia-1] \n", + "30 [tf-downreg-colorectal-1] \n", + "31 NaN \n", + "\n", + " narrative_synopsis \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "5 NaN \n", + "6 [HALLMARK_MTORC1_SIGNALING-1] \n", + "7 NaN \n", + "8 NaN \n", + "9 [tf-downreg-colorectal-1] \n", + "10 NaN \n", + "11 NaN \n", + "12 NaN \n", + "13 NaN \n", + "14 NaN \n", + "15 NaN \n", + "16 NaN \n", + "17 NaN \n", + "18 [go-postsynapse-calcium-transmembrane] \n", + "19 [go-postsynapse-calcium-transmembrane-1] \n", + "20 [hydrolase activity, hydrolyzing O-glycosyl compounds] \n", + "21 [ig-receptor-binding-2022] \n", + "22 NaN \n", + "23 [molecular sequestering] \n", + "24 [molecular sequestering] \n", + "25 NaN \n", + "26 NaN \n", + "27 NaN \n", + "28 [progeria] \n", + "29 NaN \n", + "30 NaN \n", + "31 [tf-downreg-colorectal-1] \n", + "\n", + " ontological_synopsis \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "5 NaN \n", + "6 NaN \n", + "7 NaN \n", + "8 NaN \n", + "9 [bicluster_RNAseqDB_0-1] \n", + "10 NaN \n", + "11 NaN \n", + "12 NaN \n", + "13 NaN \n", + "14 NaN \n", + "15 NaN \n", + "16 NaN \n", + "17 NaN \n", + "18 NaN \n", + "19 NaN \n", + "20 NaN \n", + "21 [ig-receptor-binding-2022-1] \n", + "22 NaN \n", + "23 NaN \n", + "24 NaN \n", + "25 NaN \n", + "26 NaN \n", + "27 [progeria] \n", + "28 NaN \n", + "29 NaN \n", + "30 NaN \n", + "31 NaN " + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "novel_df_turbo = hallucinatons(df, TURBO)\n", + "novel_df_turbo" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "7f60cc8b", + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NAMEno_synopsisnarrative_synopsisontological_synopsis
0protein folding[EDS][amigo-example-1]NaN
1cell adhesion mediator activity[EDS]NaNNaN
2co-receptor binding[EDS-1]NaNNaN
3cell growth[FA][bicluster_RNAseqDB_1002-1]NaN
4DNA-templated transcriptionNaN[progeria][FA-1]
5obsolete matrilysin activityNaN[HALLMARK_APICAL_JUNCTION]NaN
6obsolete tumor suppressorNaN[HALLMARK_APICAL_JUNCTION]NaN
7obsolete calcium-dependent cell adhesion molecule activityNaN[HALLMARK_APICAL_JUNCTION-1]NaN
8arachidonate 15-lipoxygenase activityNaNNaN[HALLMARK_GLYCOLYSIS]
9histone acetylationNaN[HALLMARK_GLYCOLYSIS]NaN
10regulation of actin filament depolymerizationNaNNaN[HALLMARK_HEDGEHOG_SIGNALING]
11cysteine-type endopeptidase inhibitor activityNaNNaN[T cell proliferation]
12stem cell development[Yamanaka-TFs]NaNNaN
13obsolete transcription activator activityNaNNaN[Yamanaka-TFs]
14obsolete transcription factor activity, protein binding[go-reg-autophagy-pkra-1]NaN[tf-downreg-colorectal]
15angiogenesisNaNNaN[Yamanaka-TFs-1]
16calcium-mediated signaling[amigo-example]NaNNaN
17collagen biosynthetic processNaN[amigo-example]NaN
18proteoglycan biosynthetic processNaN[amigo-example]NaN
19positive regulation of superoxide anion generationNaNNaN[amigo-example-1]
20obsolete cytochrome P450NaN[bicluster_RNAseqDB_0]NaN
21regulation of cardiac muscle contraction[bicluster_RNAseqDB_1002]NaNNaN
22negative regulation of calcineurin-NFAT signaling cascadeNaN[bicluster_RNAseqDB_1002-1]NaN
23negative regulation of phosphoprotein phosphatase activityNaN[bicluster_RNAseqDB_1002]NaN
24muscle thin filament assemblyNaN[bicluster_RNAseqDB_1002-1]NaN
25protein tyrosine phosphatase activity[term-GO:0007212]NaNNaN
26phospholipid metabolic process[term-GO:0007212-1]NaNNaN
27cAMP-mediated signalingNaNNaN[term-GO:0007212-1]
28protein localization to cell surfaceNaNNaN[endocytosis]
29protein tyrosine kinase activity[endocytosis-1]NaNNaN
30synaptic vesicle transport[go-postsynapse-calcium-transmembrane]NaNNaN
31calcium import into the mitochondrion[go-postsynapse-calcium-transmembrane]NaNNaN
32transmembrane transport[go-reg-autophagy-pkra-1]NaNNaN
33alanine metabolic process[hydrolase activity, hydrolyzing O-glycosyl compounds]NaNNaN
34immunoglobulin production[ig-receptor-binding-2022-1]NaNNaN
35B cell activation[ig-receptor-binding-2022-1]NaNNaN
36B cell proliferationNaN[ig-receptor-binding-2022]NaN
37cell adhesion[molecular sequestering]NaNNaN
38connective tissue development[molecular sequestering]NaNNaN
39phosphatase activity[molecular sequestering-1]NaNNaN
40ubiquitin bindingNaNNaN[molecular sequestering-1]
41obsolete vesicle transportNaNNaN[molecular sequestering-1]
42DNA replicationNaN[molecular sequestering-1]NaN
43oxidative phosphorylation[mtorc1]NaNNaN
44obsolete proteasome activator activityNaNNaN[mtorc1]
45protein-lipid complex assemblyNaNNaN[peroxisome]
46protein-containing complex assemblyNaNNaN[peroxisome-1]
47protein tetramerizationNaNNaN[peroxisome-1]
48protein modification process[progeria]NaNNaN
49translation[progeria-1]NaNNaN
50cellular respiration[progeria]NaNNaN
51regulation of telomere maintenanceNaNNaN[progeria-1]
52post-translational protein modification[sensory ataxia-1]NaNNaN
53miRNA-mediated gene silencing[regulation of presynaptic membrane potential-1]NaNNaN
54glycogen biosynthetic processNaN[regulation of presynaptic membrane potential-1]NaN
55neurotransmitter transport[sensory ataxia]NaNNaN
56RNA splicingNaNNaN[sensory ataxia-1]
57protein processing[sensory ataxia-1]NaNNaN
58protein kinase activity[sensory ataxia-1]NaNNaN
59translational initiation[sensory ataxia-1]NaNNaN
\n", + "
" + ], + "text/plain": [ + " NAME \\\n", + "0 protein folding \n", + "1 cell adhesion mediator activity \n", + "2 co-receptor binding \n", + "3 cell growth \n", + "4 DNA-templated transcription \n", + "5 obsolete matrilysin activity \n", + "6 obsolete tumor suppressor \n", + "7 obsolete calcium-dependent cell adhesion molecule activity \n", + "8 arachidonate 15-lipoxygenase activity \n", + "9 histone acetylation \n", + "10 regulation of actin filament depolymerization \n", + "11 cysteine-type endopeptidase inhibitor activity \n", + "12 stem cell development \n", + "13 obsolete transcription activator activity \n", + "14 obsolete transcription factor activity, protein binding \n", + "15 angiogenesis \n", + "16 calcium-mediated signaling \n", + "17 collagen biosynthetic process \n", + "18 proteoglycan biosynthetic process \n", + "19 positive regulation of superoxide anion generation \n", + "20 obsolete cytochrome P450 \n", + "21 regulation of cardiac muscle contraction \n", + "22 negative regulation of calcineurin-NFAT signaling cascade \n", + "23 negative regulation of phosphoprotein phosphatase activity \n", + "24 muscle thin filament assembly \n", + "25 protein tyrosine phosphatase activity \n", + "26 phospholipid metabolic process \n", + "27 cAMP-mediated signaling \n", + "28 protein localization to cell surface \n", + "29 protein tyrosine kinase activity \n", + "30 synaptic vesicle transport \n", + "31 calcium import into the mitochondrion \n", + "32 transmembrane transport \n", + "33 alanine metabolic process \n", + "34 immunoglobulin production \n", + "35 B cell activation \n", + "36 B cell proliferation \n", + "37 cell adhesion \n", + "38 connective tissue development \n", + "39 phosphatase activity \n", + "40 ubiquitin binding \n", + "41 obsolete vesicle transport \n", + "42 DNA replication \n", + "43 oxidative phosphorylation \n", + "44 obsolete proteasome activator activity \n", + "45 protein-lipid complex assembly \n", + "46 protein-containing complex assembly \n", + "47 protein tetramerization \n", + "48 protein modification process \n", + "49 translation \n", + "50 cellular respiration \n", + "51 regulation of telomere maintenance \n", + "52 post-translational protein modification \n", + "53 miRNA-mediated gene silencing \n", + "54 glycogen biosynthetic process \n", + "55 neurotransmitter transport \n", + "56 RNA splicing \n", + "57 protein processing \n", + "58 protein kinase activity \n", + "59 translational initiation \n", + "\n", + " no_synopsis \\\n", + "0 [EDS] \n", + "1 [EDS] \n", + "2 [EDS-1] \n", + "3 [FA] \n", + "4 NaN \n", + "5 NaN \n", + "6 NaN \n", + "7 NaN \n", + "8 NaN \n", + "9 NaN \n", + "10 NaN \n", + "11 NaN \n", + "12 [Yamanaka-TFs] \n", + "13 NaN \n", + "14 [go-reg-autophagy-pkra-1] \n", + "15 NaN \n", + "16 [amigo-example] \n", + "17 NaN \n", + "18 NaN \n", + "19 NaN \n", + "20 NaN \n", + "21 [bicluster_RNAseqDB_1002] \n", + "22 NaN \n", + "23 NaN \n", + "24 NaN \n", + "25 [term-GO:0007212] \n", + "26 [term-GO:0007212-1] \n", + "27 NaN \n", + "28 NaN \n", + "29 [endocytosis-1] \n", + "30 [go-postsynapse-calcium-transmembrane] \n", + "31 [go-postsynapse-calcium-transmembrane] \n", + "32 [go-reg-autophagy-pkra-1] \n", + "33 [hydrolase activity, hydrolyzing O-glycosyl compounds] \n", + "34 [ig-receptor-binding-2022-1] \n", + "35 [ig-receptor-binding-2022-1] \n", + "36 NaN \n", + "37 [molecular sequestering] \n", + "38 [molecular sequestering] \n", + "39 [molecular sequestering-1] \n", + "40 NaN \n", + "41 NaN \n", + "42 NaN \n", + "43 [mtorc1] \n", + "44 NaN \n", + "45 NaN \n", + "46 NaN \n", + "47 NaN \n", + "48 [progeria] \n", + "49 [progeria-1] \n", + "50 [progeria] \n", + "51 NaN \n", + "52 [sensory ataxia-1] \n", + "53 [regulation of presynaptic membrane potential-1] \n", + "54 NaN \n", + "55 [sensory ataxia] \n", + "56 NaN \n", + "57 [sensory ataxia-1] \n", + "58 [sensory ataxia-1] \n", + "59 [sensory ataxia-1] \n", + "\n", + " narrative_synopsis \\\n", + "0 [amigo-example-1] \n", + "1 NaN \n", + "2 NaN \n", + "3 [bicluster_RNAseqDB_1002-1] \n", + "4 [progeria] \n", + "5 [HALLMARK_APICAL_JUNCTION] \n", + "6 [HALLMARK_APICAL_JUNCTION] \n", + "7 [HALLMARK_APICAL_JUNCTION-1] \n", + "8 NaN \n", + "9 [HALLMARK_GLYCOLYSIS] \n", + "10 NaN \n", + "11 NaN \n", + "12 NaN \n", + "13 NaN \n", + "14 NaN \n", + "15 NaN \n", + "16 NaN \n", + "17 [amigo-example] \n", + "18 [amigo-example] \n", + "19 NaN \n", + "20 [bicluster_RNAseqDB_0] \n", + "21 NaN \n", + "22 [bicluster_RNAseqDB_1002-1] \n", + "23 [bicluster_RNAseqDB_1002] \n", + "24 [bicluster_RNAseqDB_1002-1] \n", + "25 NaN \n", + "26 NaN \n", + "27 NaN \n", + "28 NaN \n", + "29 NaN \n", + "30 NaN \n", + "31 NaN \n", + "32 NaN \n", + "33 NaN \n", + "34 NaN \n", + "35 NaN \n", + "36 [ig-receptor-binding-2022] \n", + "37 NaN \n", + "38 NaN \n", + "39 NaN \n", + "40 NaN \n", + "41 NaN \n", + "42 [molecular sequestering-1] \n", + "43 NaN \n", + "44 NaN \n", + "45 NaN \n", + "46 NaN \n", + "47 NaN \n", + "48 NaN \n", + "49 NaN \n", + "50 NaN \n", + "51 NaN \n", + "52 NaN \n", + "53 NaN \n", + "54 [regulation of presynaptic membrane potential-1] \n", + "55 NaN \n", + "56 NaN \n", + "57 NaN \n", + "58 NaN \n", + "59 NaN \n", + "\n", + " ontological_synopsis \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 [FA-1] \n", + "5 NaN \n", + "6 NaN \n", + "7 NaN \n", + "8 [HALLMARK_GLYCOLYSIS] \n", + "9 NaN \n", + "10 [HALLMARK_HEDGEHOG_SIGNALING] \n", + "11 [T cell proliferation] \n", + "12 NaN \n", + "13 [Yamanaka-TFs] \n", + "14 [tf-downreg-colorectal] \n", + "15 [Yamanaka-TFs-1] \n", + "16 NaN \n", + "17 NaN \n", + "18 NaN \n", + "19 [amigo-example-1] \n", + "20 NaN \n", + "21 NaN \n", + "22 NaN \n", + "23 NaN \n", + "24 NaN \n", + "25 NaN \n", + "26 NaN \n", + "27 [term-GO:0007212-1] \n", + "28 [endocytosis] \n", + "29 NaN \n", + "30 NaN \n", + "31 NaN \n", + "32 NaN \n", + "33 NaN \n", + "34 NaN \n", + "35 NaN \n", + "36 NaN \n", + "37 NaN \n", + "38 NaN \n", + "39 NaN \n", + "40 [molecular sequestering-1] \n", + "41 [molecular sequestering-1] \n", + "42 NaN \n", + "43 NaN \n", + "44 [mtorc1] \n", + "45 [peroxisome] \n", + "46 [peroxisome-1] \n", + "47 [peroxisome-1] \n", + "48 NaN \n", + "49 NaN \n", + "50 NaN \n", + "51 [progeria-1] \n", + "52 NaN \n", + "53 NaN \n", + "54 NaN \n", + "55 NaN \n", + "56 [sensory ataxia-1] \n", + "57 NaN \n", + "58 NaN \n", + "59 NaN " + ] + }, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "endocytosis = df.query(f\"{GENESET} == 'endocytosis-0'\").sort_values(\"similarity\", ascending=False)\n", - "terms_summary(endocytosis)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "e9c3c720", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "I will give you a list of genes together with descriptions of their functions.\n", - "Perform a term enrichment test on these genes.\n", - "i.e. tell me what the commonalities are in their function.\n", - "Make use of classification hierarchies when you do this.\n", - "Only report gene functions in common, not diseases.\n", - "e.g if gene1 is involved in \"toe bone growth\" and gene2 is involved in \"finger morphogenesis\"\n", - "then the term \"digit development\" would be enriched as represented by gene1 and gene2.\n", - "Only include terms that are statistically over-represented.\n", - "Also include a hypothesis of the underlying biological mechanism or pathway.\n", - "\n", - "Provide results in the format\n", - "\n", - "Summary: \n", - "Mechanism: \n", - "Enriched Terms: ; ; \n", - "\n", - "###\n", - "\n", - "Here are the gene summaries:\n", - "DOCK2: The protein encoded by this gene belongs to the CDM protein family. It is specifically expressed in hematopoietic cells and is predominantly expressed in peripheral blood leukocytes. The protein is involved in remodeling of the actin cytoskeleton required for lymphocyte migration in response to chemokine signaling. It activates members of the Rho family of GTPases, for example RAC1 and RAC2, by acting as a guanine nucleotide exchange factor (GEF) to exchange bound GDP for free GTP. Mutations in this gene result in immunodeficiency 40 (IMD40), a combined form of immunodeficiency that affects T cell number and function, also with variable defects in B cell and NK cell function. [provided by RefSeq, May 2018]\n", - "RAB34: This gene encodes a protein belonging to the RAB family of proteins, which are small GTPases involved in protein transport. This family member is a Golgi-bound member of the secretory pathway that is involved in the repositioning of lysosomes and the activation of macropinocytosis. Alternative splicing of this gene results in multiple transcript variants. An alternatively spliced transcript variant produces the nine-amino acid residue-repeats (NARR) protein, which is a functionally distinct nucleolar protein resulting from a different reading frame. [provided by RefSeq, Dec 2016]\n", - "PPT1: The protein encoded by this gene is a small glycoprotein involved in the catabolism of lipid-modified proteins during lysosomal degradation. The encoded enzyme removes thioester-linked fatty acyl groups such as palmitate from cysteine residues. Defects in this gene are a cause of infantile neuronal ceroid lipofuscinosis 1 (CLN1, or INCL) and neuronal ceroid lipofuscinosis 4 (CLN4). Two transcript variants encoding different isoforms have been found for this gene.[provided by RefSeq, Dec 2008]\n", - "EHD4: Enables cadherin binding activity. Involved in endocytic recycling and protein homooligomerization. Located in endoplasmic reticulum and recycling endosome membrane. [provided by Alliance of Genome Resources, Apr 2022]\n", - "LRP1: This gene encodes a member of the low-density lipoprotein receptor family of proteins. The encoded preproprotein is proteolytically processed by furin to generate 515 kDa and 85 kDa subunits that form the mature receptor (PMID: 8546712). This receptor is involved in several cellular processes, including intracellular signaling, lipid homeostasis, and clearance of apoptotic cells. In addition, the encoded protein is necessary for the alpha 2-macroglobulin-mediated clearance of secreted amyloid precursor protein and beta-amyloid, the main component of amyloid plaques found in Alzheimer patients. Expression of this gene decreases with age and has been found to be lower than controls in brain tissue from Alzheimer's disease patients. [provided by RefSeq, Oct 2015]\n", - "MAPKAPK3: This gene encodes a member of the Ser/Thr protein kinase family. This kinase functions as a mitogen-activated protein kinase (MAP kinase)- activated protein kinase. MAP kinases are also known as extracellular signal-regulated kinases (ERKs), act as an integration point for multiple biochemical signals. This kinase was shown to be activated by growth inducers and stress stimulation of cells. In vitro studies demonstrated that ERK, p38 MAP kinase and Jun N-terminal kinase were all able to phosphorylate and activate this kinase, which suggested the role of this kinase as an integrative element of signaling in both mitogen and stress responses. This kinase was reported to interact with, phosphorylate and repress the activity of E47, which is a basic helix-loop-helix transcription factor known to be involved in the regulation of tissue-specific gene expression and cell differentiation. Alternate splicing results in multiple transcript variants that encode the same protein. [provided by RefSeq, Sep 2011]\n", - "AHSG: The protein encoded by this gene is a negatively-charged serum glycoprotein that is synthesized by hepatocytes. The encoded protein consists of two polypeptide chains, which are both cleaved from a proprotein encoded from a single mRNA. It is involved in several processes, including endocytosis, brain development, and the formation of bone tissue. Defects in this gene are a cause of susceptibility to leanness. [provided by RefSeq, Aug 2017]\n", - "MAPKAPK2: This gene encodes a member of the Ser/Thr protein kinase family. This kinase is regulated through direct phosphorylation by p38 MAP kinase. In conjunction with p38 MAP kinase, this kinase is known to be involved in many cellular processes including stress and inflammatory responses, nuclear export, gene expression regulation and cell proliferation. Heat shock protein HSP27 was shown to be one of the substrates of this kinase in vivo. Two transcript variants encoding two different isoforms have been found for this gene. [provided by RefSeq, Jul 2008]\n", - "CD36: The protein encoded by this gene is the fourth major glycoprotein of the platelet surface and serves as a receptor for thrombospondin in platelets and various cell lines. Since thrombospondins are widely distributed proteins involved in a variety of adhesive processes, this protein may have important functions as a cell adhesion molecule. It binds to collagen, thrombospondin, anionic phospholipids and oxidized LDL. It directly mediates cytoadherence of Plasmodium falciparum parasitized erythrocytes and it binds long chain fatty acids and may function in the transport and/or as a regulator of fatty acid transport. Mutations in this gene cause platelet glycoprotein deficiency. Multiple alternatively spliced transcript variants have been found for this gene. [provided by RefSeq, Feb 2014]\n", - "DNM2: Dynamins represent one of the subfamilies of GTP-binding proteins. These proteins share considerable sequence similarity over the N-terminal portion of the molecule, which contains the GTPase domain. Dynamins are associated with microtubules. They have been implicated in cell processes such as endocytosis and cell motility, and in alterations of the membrane that accompany certain activities such as bone resorption by osteoclasts. Dynamins bind many proteins that bind actin and other cytoskeletal proteins. Dynamins can also self-assemble, a process that stimulates GTPase activity. Five alternatively spliced transcripts encoding different proteins have been described. Additional alternatively spliced transcripts may exist, but their full-length nature has not been determined. [provided by RefSeq, Jun 2010]\n", - "LDLR: The low density lipoprotein receptor (LDLR) gene family consists of cell surface proteins involved in receptor-mediated endocytosis of specific ligands. The encoded protein is normally bound at the cell membrane, where it binds low density lipoprotein/cholesterol and is taken into the cell. Lysosomes release the cholesterol, which is made available for repression of microsomal enzyme 3-hydroxy-3-methylglutaryl coenzyme A (HMG CoA) reductase, the rate-limiting step in cholesterol synthesis. At the same time, a reciprocal stimulation of cholesterol ester synthesis takes place. Mutations in this gene cause the autosomal dominant disorder, familial hypercholesterolemia. Alternate splicing results in multiple transcript variants.[provided by RefSeq, May 2022]\n", - "PYCARD: This gene encodes an adaptor protein that is composed of two protein-protein interaction domains: a N-terminal PYRIN-PAAD-DAPIN domain (PYD) and a C-terminal caspase-recruitment domain (CARD). The PYD and CARD domains are members of the six-helix bundle death domain-fold superfamily that mediates assembly of large signaling complexes in the inflammatory and apoptotic signaling pathways via the activation of caspase. In normal cells, this protein is localized to the cytoplasm; however, in cells undergoing apoptosis, it forms ball-like aggregates near the nuclear periphery. Two transcript variants encoding different isoforms have been found for this gene. [provided by RefSeq, Jul 2008]\n", - "UBE3A: This gene encodes an E3 ubiquitin-protein ligase, part of the ubiquitin protein degradation system. This imprinted gene is maternally expressed in brain and biallelically expressed in other tissues. Maternally inherited deletion of this gene causes Angelman Syndrome, characterized by severe motor and intellectual retardation, ataxia, hypotonia, epilepsy, absence of speech, and characteristic facies. The protein also interacts with the E6 protein of human papillomavirus types 16 and 18, resulting in ubiquitination and proteolysis of tumor protein p53. Alternative splicing of this gene results in three transcript variants encoding three isoforms with different N-termini. Additional transcript variants have been described, but their full length nature has not been determined. [provided by RefSeq, Jul 2008]\n", - "SNX5: This gene encodes a member of the sorting nexin family. Members of this family contain a phox (PX) domain, which is a phosphoinositide binding domain, and are involved in intracellular trafficking. This protein functions in endosomal sorting, the phosphoinositide-signaling pathway, and macropinocytosis. This gene may play a role in the tumorigenesis of papillary thyroid carcinoma. Alternative splicing results in multiple transcript variants encoding different isoforms. [provided by RefSeq, Sep 2013]\n", - "SNX33: The protein encoded by this gene is involved in cytoskeletal reorganization, vesicle trafficking, endocytosis, and mitosis. The encoded protein is essential for the creation of the cleavage furrow during mitosis and for completion of mitosis. Two transcript variants encoding different isoforms have been found for this gene. [provided by RefSeq, Dec 2015]\n", - "CARMIL1: Involved in several processes, including actin filament network formation; plasma membrane bounded cell projection organization; and positive regulation of cellular component organization. Located in several cellular components, including lamellipodium; macropinosome; and nuclear speck. [provided by Alliance of Genome Resources, Apr 2022]\n", - "\n", - "Summary and enriched terms:\n", - "\n" - ] - } - ], - "source": [ - "print(retrieve_payload(\"endocytosis-0\", \"gpt-3.5-turbo.narrative_synopsis\").prompt)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "6357dffb", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Summary: Genes involved in intracellular trafficking, endocytosis, and cytoskeletal reorganization processes are enriched.\n", - "\n", - "Mechanism: These genes likely play a role in the regulation and organization of cellular processes through the endocytic pathway and cytoskeleton.\n", - "\n", - "Enriched Terms: Endocytosis; Cytoskeleton organization; Intracellular trafficking.\n" - ] - } - ], - "source": [ - "print(retrieve_payload(\"endocytosis-0\", \"gpt-3.5-turbo.narrative_synopsis\").response_text)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "4f101e21", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "I will give you a list of genes together with descriptions of their functions.\n", - "Perform a term enrichment test on these genes.\n", - "i.e. tell me what the commonalities are in their function.\n", - "Make use of classification hierarchies when you do this.\n", - "Only report gene functions in common, not diseases.\n", - "e.g if gene1 is involved in \"toe bone growth\" and gene2 is involved in \"finger morphogenesis\"\n", - "then the term \"digit development\" would be enriched as represented by gene1 and gene2.\n", - "Only include terms that are statistically over-represented.\n", - "Also include a hypothesis of the underlying biological mechanism or pathway.\n", - "\n", - "Provide results in the format\n", - "\n", - "Summary: \n", - "Mechanism: \n", - "Enriched Terms: ; ; \n", - "\n", - "###\n", - "\n", - "Here are the gene summaries:\n", - "DOCK2: Enables T cell receptor binding activity and guanyl-nucleotide exchange factor activity. Predicted to be involved in several processes, including macropinocytosis; myeloid dendritic cell activation involved in immune response; and myoblast fusion. Predicted to act upstream of or within several processes, including T cell activation; immunological synapse formation; and membrane raft polarization. Located in extracellular exosome and membrane. Implicated in immunodeficiency 40.\n", - "RAB34: Enables GTP-dependent protein binding activity and small GTPase binding activity. Involved in several processes, including Golgi to plasma membrane protein transport; lysosome localization; and phagosome-lysosome fusion. Located in Golgi cisterna; perinuclear region of cytoplasm; and phagocytic vesicle.\n", - "PPT1: Enables lysophosphatidic acid binding activity; sulfatide binding activity; and thiolester hydrolase activity. Involved in several processes, including lysosomal lumen acidification; positive regulation of endocytosis; and protein depalmitoylation. Acts upstream of or within pinocytosis and receptor-mediated endocytosis. Located in several cellular components, including lysosome; membrane raft; and synaptic vesicle. Implicated in neuronal ceroid lipofuscinosis 1.\n", - "EHD4: Enables cadherin binding activity. Involved in endocytic recycling and protein homooligomerization. Located in endoplasmic reticulum and recycling endosome membrane.\n", - "LRP1: Enables alpha-2 macroglobulin receptor activity; apolipoprotein binding activity; and clathrin heavy chain binding activity. Involved in several processes, including amyloid-beta clearance by cellular catabolic process; amyloid-beta clearance by transcytosis; and positive regulation of lysosomal protein catabolic process. Located in basolateral plasma membrane and early endosome. Part of receptor complex. Implicated in Alzheimer's disease; keratosis pilaris atrophicans; myocardial infarction; and sciatic neuropathy.\n", - "MAPKAPK3: Enables protein serine/threonine kinase activity. Involved in peptidyl-serine phosphorylation and response to cytokine. Located in nucleoplasm. Implicated in patterned macular dystrophy 3.\n", - "AHSG: Predicted to enable endopeptidase inhibitor activity. Involved in acute-phase response; positive regulation of phagocytosis; and regulation of inflammatory response. Located in Golgi apparatus. Implicated in alopecia-mental retardation syndrome 1; coronary artery disease; and type 2 diabetes mellitus. Biomarker of gestational diabetes; myocardial infarction; obesity; and type 2 diabetes mellitus.\n", - "MAPKAPK2: Enables protein serine/threonine kinase activity. Involved in several processes, including peptidyl-serine phosphorylation; regulation of gene expression; and vascular endothelial growth factor receptor signaling pathway. Located in centrosome; cytoplasm; and nucleoplasm.\n", - "CD36: Enables several functions, including amyloid-beta binding activity; fatty acid transmembrane transporter activity; and low-density lipoprotein particle binding activity. Involved in several processes, including amyloid-beta clearance by cellular catabolic process; lipid transport; and second-messenger-mediated signaling. Located in several cellular components, including Golgi apparatus; cell surface; and membrane raft. Part of receptor complex. Implicated in several diseases, including blood platelet disease (multiple); hemolytic-uremic syndrome; osteoarthritis; pulmonary tuberculosis; and type 2 diabetes mellitus. Biomarker of several diseases, including autoimmune disease (multiple); myeloid neoplasm (multiple); myositis (multiple); rheumatic heart disease; and sickle cell anemia.\n", - "DNM2: Enables SH3 domain binding activity. Involved in negative regulation of membrane tubulation; receptor internalization; and transferrin transport. Located in several cellular components, including Golgi apparatus; microtubule; and postsynaptic membrane. Implicated in Charcot-Marie-Tooth disease dominant intermediate B; centronuclear myopathy 1; and lethal congenital contracture syndrome.\n", - "LDLR: Enables several functions, including low-density lipoprotein particle binding activity; low-density lipoprotein particle receptor activity; and very-low-density lipoprotein particle receptor activity. Involved in several processes, including cholesterol homeostasis; cholesterol transport; and long-term memory. Located in several cellular components, including clathrin-coated pit; endosome; and external side of plasma membrane. Part of PCSK9-LDLR complex and receptor complex. Implicated in Alzheimer's disease; arteriosclerosis; familial hypercholesterolemia; hepatitis C; and migraine without aura. Biomarker of systemic lupus erythematosus.\n", - "PYCARD: Enables several functions, including Pyrin domain binding activity; cytoskeletal protein binding activity; and signaling receptor binding activity. Involved in several processes, including regulation of DNA-binding transcription factor activity; regulation of cytokine production; and regulation of signal transduction. Located in several cellular components, including Golgi membrane; inflammasome complex; and nuclear lumen. Part of inflammasome complex. Colocalizes with IkappaB kinase complex.\n", - "UBE3A: Enables ubiquitin protein ligase activity. Involved in several processes, including protein ubiquitination; regulation of protein metabolic process; and response to steroid hormone. Predicted to be located in cytoplasm and nucleus. Predicted to be part of proteasome complex. Predicted to be active in cytosol and glutamatergic synapse. Implicated in Angelman syndrome.\n", - "SNX5: Enables dynactin binding activity and phosphatidylinositol binding activity. Involved in several processes, including pinocytosis; positive regulation of insulin receptor signaling pathway; and retrograde transport, endosome to Golgi. Located in cytosol; macropinocytic cup; and tubular endosome. Is extrinsic component of cytoplasmic side of plasma membrane and extrinsic component of endosome membrane. Part of perinuclear region of cytoplasm and retromer complex. Colocalizes with early endosome membrane.\n", - "SNX33: Enables identical protein binding activity. Involved in several processes, including cytoskeleton-dependent cytokinesis; plasma membrane tubulation; and regulation of protein localization to cell surface. Located in cytoplasmic vesicle; cytosol; and membrane. Is extrinsic component of membrane.\n", - "CARMIL1: Involved in several processes, including actin filament network formation; plasma membrane bounded cell projection organization; and positive regulation of cellular component organization. Located in several cellular components, including lamellipodium; macropinosome; and nuclear speck.\n", - "\n", - "Summary and enriched terms:\n", - "\n" - ] - } - ], - "source": [ - "print(retrieve_payload(\"endocytosis-0\", \"gpt-3.5-turbo.ontological_synopsis\").prompt)" + "hallucinatons(df, DAVINCI)" ] }, { diff --git a/poetry.lock b/poetry.lock index 2d2fd3ec6..94776779b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -188,6 +188,21 @@ files = [ [package.extras] dev = ["black", "coverage", "isort", "pre-commit", "pyenchant", "pylint"] +[[package]] +name = "ansiwrap" +version = "0.8.4" +description = "textwrap, but savvy to ANSI colors and styles" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "ansiwrap-0.8.4-py2.py3-none-any.whl", hash = "sha256:7b053567c88e1ad9eed030d3ac41b722125e4c1271c8a99ade797faff1f49fb1"}, + {file = "ansiwrap-0.8.4.zip", hash = "sha256:ca0c740734cde59bf919f8ff2c386f74f9a369818cdc60efe94893d01ea8d9b7"}, +] + +[package.dependencies] +textwrap3 = ">=0.9.2" + [[package]] name = "antlr4-python3-runtime" version = "4.9.3" @@ -1087,6 +1102,18 @@ files = [ {file = "EditorConfig-0.12.3.tar.gz", hash = "sha256:57f8ce78afcba15c8b18d46b5170848c88d56fd38f05c2ec60dbbfcb8996e89e"}, ] +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] + [[package]] name = "et-xmlfile" version = "1.1.0" @@ -3968,6 +3995,40 @@ numpy = "*" pandas = "*" sqlalchemy = "*" +[[package]] +name = "papermill" +version = "2.4.0" +description = "Parametrize and run Jupyter and nteract Notebooks" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "papermill-2.4.0-py3-none-any.whl", hash = "sha256:baa76f0441257d9a25b3ad7c895e761341b94f9a70ca98cf419247fc728932d9"}, + {file = "papermill-2.4.0.tar.gz", hash = "sha256:6f8f8a9b06b39677f207c09100c8d386bcf592f0cbbdda9f0f50e81445697627"}, +] + +[package.dependencies] +ansiwrap = "*" +click = "*" +entrypoints = "*" +nbclient = ">=0.2.0" +nbformat = ">=5.1.2" +pyyaml = "*" +requests = "*" +tenacity = "*" +tqdm = ">=4.32.2" + +[package.extras] +all = ["azure-datalake-store (>=0.0.30)", "azure-storage-blob (>=12.1.0)", "black (>=19.3b0)", "boto3", "gcsfs (>=0.2.0)", "pyarrow (>=2.0)", "requests (>=2.21.0)"] +azure = ["azure-datalake-store (>=0.0.30)", "azure-storage-blob (>=12.1.0)", "requests (>=2.21.0)"] +black = ["black (>=19.3b0)"] +dev = ["attrs (>=17.4.0)", "azure-datalake-store (>=0.0.30)", "azure-storage-blob (>=12.1.0)", "black (>=19.3b0)", "boto3", "botocore", "bumpversion", "check-manifest", "codecov", "coverage", "flake8", "gcsfs (>=0.2.0)", "google-compute-engine", "ipython (>=5.0)", "ipywidgets", "moto", "notebook", "pip (>=18.1)", "pre-commit", "pyarrow (>=2.0)", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "pytest-env (>=0.6.2)", "pytest-mock (>=1.10)", "recommonmark", "requests (>=2.21.0)", "setuptools (>=38.6.0)", "tox", "twine (>=1.11.0)", "wheel (>=0.31.0)"] +gcs = ["gcsfs (>=0.2.0)"] +github = ["PyGithub (>=1.55)"] +hdfs = ["pyarrow (>=2.0)"] +s3 = ["boto3"] +test = ["attrs (>=17.4.0)", "azure-datalake-store (>=0.0.30)", "azure-storage-blob (>=12.1.0)", "black (>=19.3b0)", "boto3", "botocore", "bumpversion", "check-manifest", "codecov", "coverage", "flake8", "gcsfs (>=0.2.0)", "google-compute-engine", "ipython (>=5.0)", "ipywidgets", "moto", "notebook", "pip (>=18.1)", "pre-commit", "pyarrow (>=2.0)", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "pytest-env (>=0.6.2)", "pytest-mock (>=1.10)", "recommonmark", "requests (>=2.21.0)", "setuptools (>=38.6.0)", "tox", "twine (>=1.11.0)", "wheel (>=0.31.0)"] + [[package]] name = "parse" version = "1.19.0" @@ -6024,6 +6085,21 @@ typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\"" [package.extras] full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"] +[[package]] +name = "tenacity" +version = "8.2.2" +description = "Retry code until it succeeds" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "tenacity-8.2.2-py3-none-any.whl", hash = "sha256:2f277afb21b851637e8f52e6a613ff08734c347dc19ade928e519d7d2d8569b0"}, + {file = "tenacity-8.2.2.tar.gz", hash = "sha256:43af037822bd0029025877f3b2d97cc4d7bb0c2991000a3d59d71517c5c969e0"}, +] + +[package.extras] +doc = ["reno", "sphinx", "tornado (>=4.5)"] + [[package]] name = "terminado" version = "0.17.1" @@ -6045,6 +6121,18 @@ tornado = ">=6.1.0" docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +[[package]] +name = "textwrap3" +version = "0.9.2" +description = "textwrap from Python 3.6 backport (plus a few tweaks)" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "textwrap3-0.9.2-py2.py3-none-any.whl", hash = "sha256:bf5f4c40faf2a9ff00a9e0791fed5da7415481054cef45bb4a3cfb1f69044ae0"}, + {file = "textwrap3-0.9.2.zip", hash = "sha256:5008eeebdb236f6303dcd68f18b856d355f6197511d952ba74bc75e40e0c3414"}, +] + [[package]] name = "threadpoolctl" version = "3.1.0" @@ -6727,4 +6815,4 @@ web = ["Jinja2", "fastapi", "uvicorn"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "840a985feb9c0afe31f41ea0dbc9c70b9da33f7c7a9a700cab26c0a2999913b3" +content-hash = "706c67157732ed0b34f9452677e6b8f0c9e5b67c19fda830153cc971e1fb477a" diff --git a/pyproject.toml b/pyproject.toml index 7a24b41d4..9d0cb73a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,6 +75,7 @@ recipes = [ [tool.poetry.group.dev.dependencies] jupyter = "^1.0.0" seaborn = "^0.12.2" +papermill = "^2.4.0" [tool.poetry-dynamic-versioning] enable = true diff --git a/src/ontogpt/cli.py b/src/ontogpt/cli.py index 8407a0630..0b4c9894b 100644 --- a/src/ontogpt/cli.py +++ b/src/ontogpt/cli.py @@ -3,6 +3,7 @@ import logging import pickle import sys +from copy import copy from dataclasses import dataclass from io import BytesIO, TextIOWrapper from pathlib import Path @@ -517,6 +518,10 @@ def convert_geneset(input_file, output, output_format, **kwargs): "-U", help="File with gene IDs to enrich (if not passed as arguments)", ) +@click.option( + "--randomize-gene-descriptions-using-file", + help="FOR EVALUATION ONLY. swap out gene descriptions with genes from this gene set filefile", +) @click.option( "--ontological-synopsis/--no-ontological-synopsis", default=True, @@ -548,6 +553,7 @@ def enrichment( show_prompt, interactive, output_format, + randomize_gene_descriptions_using_file, **kwargs, ): """Gene class enrichment. @@ -590,7 +596,22 @@ def enrichment( raise ValueError(f"Expected EnrichmentEngine, got {type(ke)}") if resolver: ke.add_resolver(resolver) - results = ke.summarize(gene_set, normalize=resolver is not None, **kwargs) + if randomize_gene_descriptions_using_file: + print("WARNING!! Randomly spiking gene descriptions") + spike_gene_set = parse_gene_set(randomize_gene_descriptions_using_file) + aliases = {} + if not spike_gene_set.gene_symbols: + raise ValueError(f"No gene symbols for spike set") + syms = copy(gene_set.gene_symbols) + if len(spike_gene_set.gene_symbols) < len(gene_set.gene_symbols): + raise ValueError(f"Not enough genes in spike set") + for sym in spike_gene_set.gene_symbols: + if not syms: + break + aliases[sym] = syms.pop() + results = ke.summarize(spike_gene_set, normalize=resolver is not None, gene_aliases=aliases, **kwargs) + else: + results = ke.summarize(gene_set, normalize=resolver is not None, **kwargs) if results.truncation_factor is not None and results.truncation_factor < 1.0: logging.warning(f"Text was truncated; factor = {results.truncation_factor}") output = _as_text_writer(output) @@ -787,6 +808,10 @@ def entity_similarity(terms, ontology, output, model, output_format, **kwargs): default=1, help="Max number of genes to drop", ) +#@click.option( +# "--randomize-gene-descriptions/--no-randomize-gene-descriptions", +# help="DO NOT USE EXCEPT FOR EVALUATION PUPOSES." +#) @click.option( "--annotations-path", "-A", @@ -808,7 +833,7 @@ def eval_enrichment(genes, input_file, number_to_drop, annotations_path, output, raise ValueError("No genes passed") eval_engine = EvalEnrichment() eval_engine.load_annotations(annotations_path) - comps = eval_engine.evaluate_methods_on_gene_set(gene_set, n=number_to_drop) + comps = eval_engine.evaluate_methods_on_gene_set(gene_set, n=number_to_drop, **kwargs) output.write(dump_minimal_yaml(comps)) diff --git a/src/ontogpt/engines/enrichment.py b/src/ontogpt/engines/enrichment.py index c4736c7ec..194a8321d 100644 --- a/src/ontogpt/engines/enrichment.py +++ b/src/ontogpt/engines/enrichment.py @@ -7,10 +7,12 @@ from pathlib import Path from typing import Dict, List, Optional, Tuple, Union +from deprecation import deprecated from jinja2 import Template from oaklib import BasicOntologyInterface, get_adapter from ontogpt.engines.knowledge_engine import KnowledgeEngine +from ontogpt.prompts.enrichment import DEFAULT_ENRICHMENT_PROMPT from ontogpt.templates.gene_description_term import GeneDescriptionTerm from ontogpt.utils.gene_set_utils import ( ENTITY_ID, @@ -27,54 +29,6 @@ MECHANISM_KEYWORD = "Mechanism" ENRICHED_TERMS_KEYWORD = "Enriched Terms" -BASE_PROMPT = f""" -I will give you a list of genes together with descriptions of their functions. -Perform a term enrichment test on these genes. -i.e. tell me what the commonalities are in their function. -Make use of classification hierarchies when you do this. -Only report gene functions in common, not diseases. -e.g if gene1 is involved in "toe bone growth" and gene2 is involved in "finger morphogenesis" -then the term "digit development" would be enriched as represented by gene1 and gene2. -Only include terms that are statistically over-represented. -Also include a hypothesis of the underlying biological mechanism or pathway. - -Provide results in the format - -{SUMMARY_KEYWORD}: -{MECHANISM_KEYWORD}: -{ENRICHED_TERMS_KEYWORD}: ; ; - -### - -Here are the gene summaries: -""" - -FOOTER = """ -Summary and enriched terms: -""" - -ANNOTATION_FREE_PROMPT = f""" -I will give you a list of genes symbols. -Perform a term enrichment test on these genes. -i.e. tell me what the commonalities are in their function. -Make use of classification hierarchies when you do this. -Only report gene functions in common, not diseases. -e.g if gene1 is involved in "toe bone growth" and gene2 is involved in "finger morphogenesis" -then the term "digit development" would be enriched as represented by gene1 and gene2. -Only include terms that are statistically over-represented. - -Provide results in the format - -{SUMMARY_KEYWORD}: -{MECHANISM_KEYWORD}: -{ENRICHED_TERMS_KEYWORD}: ; ; - -### - -Here are the genes: -""" - - class GeneDescriptionSource(Enum): NONE = "none" ONTOLOGICAL_SYNOPSIS = "ontological" @@ -131,10 +85,15 @@ def summarize( ontological_synopsis=True, combined_synopsis=False, annotations=True, + gene_aliases=None, ) -> EnrichmentPayload: """ Summarize a list of gene IDs. + >>> engine = EnrichmentEngine() + >>> gene_set = GeneSet(gene_ids=...) + >>> engine.summarize(gene_set) + :param gene_set: an object representing a list of genes to summarize :prompt_template: path to alternative prompt :param normalize: whether to normalize labels to IDs @@ -142,6 +101,7 @@ def summarize( :param ontological_synopsis: whether to use the auto-generated synopsis :param combined_synopsis: whether to combine the auto-generated and manual synopsis :param annotations: whether to use annotations + :param spike_gene_set: FOR TESTING ONLY :return: summary """ if gene_description_source: @@ -185,9 +145,13 @@ def summarize( logging.debug(f"Manual synopsis: {desc}") gene_tuples.append((gene_id, symbol, desc)) logging.info(f"Found {len(gene_tuples)} gene summaries") - if not annotations: - return self.summarize_annotation_free(gene_tuples) - prompt, tf = self._prompt(gene_tuples, template=prompt_template) + #if not annotations: + # return self.summarize_annotation_free(gene_tuples) + if gene_aliases: + gene_tuples = [(id, gene_aliases.get(sym, sym), desc) for id, sym, desc in gene_tuples] + if not prompt_template: + prompt_template = str(f"{DEFAULT_ENRICHMENT_PROMPT}.jinja2") + prompt, tf = self._prompt_from_template(gene_tuples, template=prompt_template, annotations=annotations) response_text = self.client.complete(prompt, max_tokens=self.completion_length) response_token_length = len(self.encoding.encode(response_text)) logging.info(f"Response token length: {response_token_length}") @@ -197,62 +161,15 @@ def summarize( truncation_factor=tf, used_auto_synopsis=ontological_synopsis, used_combined_synopsis=combined_synopsis, - annotations=True, - response_token_length=response_token_length, - model=self.model, - ) - self.process_payload(payload) - return payload - - def summarize_annotation_free(self, genes: List[GENE_TUPLE]) -> EnrichmentPayload: - """Summarize gene IDs without using any annotations.""" - prompt = ANNOTATION_FREE_PROMPT - if not genes: - raise ValueError("No genes provided") - prompt += "; ".join([symbol for _id, symbol, _desc in genes]) - prompt += FOOTER - response_text = self.client.complete(prompt) - response_token_length = len(self.encoding.encode(response_text)) - logging.info(f"Response token length: {response_token_length}") - payload = EnrichmentPayload( - prompt=prompt, - response_text=response_text, - annotations=False, + annotations=annotations, response_token_length=response_token_length, model=self.model, ) self.process_payload(payload) return payload - def _prompt( - self, - genes: List[GENE_TUPLE], - template: Optional[Union[str, Path, Template]] = None, - truncation_factor=1.0, - ) -> Tuple[str, float]: - if template: - return self._prompt_from_template(genes, template, truncation_factor) - prompt = BASE_PROMPT - for _, symbol, desc in genes: - if desc is None: - desc = "" - if truncation_factor < 1.0: - desc = desc[: int(len(desc) * truncation_factor)] + "..." - prompt += f"{symbol}: {desc}\n" - # prompt += "\nEnriched terms:" - prompt += FOOTER - logging.info(f"Prompt [{truncation_factor}] Length: {len(prompt)}") - # https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them - prompt_length = len(self.encoding.encode(prompt)) - logging.info(f"Prompt [{truncation_factor}] Tokens: {prompt_length} Strlen={len(prompt)}") - max_len = 4097 - self.completion_length - if prompt_length > max_len: # TODO: check this - logging.warning(f"Prompt is too long; toks: {prompt_length} len: {len(prompt)}") - return self._prompt(genes, truncation_factor=truncation_factor * 0.8) - return prompt, truncation_factor - def _prompt_from_template( - self, genes: List[GENE_TUPLE], template: str, truncation_factor=1.0 + self, genes: List[GENE_TUPLE], template: str, truncation_factor=1.0, annotations=True, ) -> Tuple[str, float]: if isinstance(template, Path): template = str(template) @@ -271,6 +188,7 @@ def _prompt_from_template( gd_tuples.append((symbol, desc)) prompt = template.render( gene_descriptions=gd_tuples, + annotations=annotations, SUMMARY_KEYWORD=SUMMARY_KEYWORD, MECHANISM_KEYWORD=MECHANISM_KEYWORD, ENRICHED_TERMS_KEYWORD=ENRICHED_TERMS_KEYWORD, @@ -284,7 +202,7 @@ def _prompt_from_template( if prompt_length > max_len: # TODO: check this logging.warning(f"Prompt is too long; toks: {prompt_length} len: {len(prompt)}") return self._prompt_from_template( - genes, template, truncation_factor=truncation_factor * 0.8 + genes, template, truncation_factor=truncation_factor * 0.8, annotations=annotations, ) return prompt, truncation_factor diff --git a/src/ontogpt/evaluation/enrichment/eval_enrichment.py b/src/ontogpt/evaluation/enrichment/eval_enrichment.py index d2f9b6763..afd435d49 100644 --- a/src/ontogpt/evaluation/enrichment/eval_enrichment.py +++ b/src/ontogpt/evaluation/enrichment/eval_enrichment.py @@ -104,7 +104,7 @@ def __post_init__(self): self.tokenizer_encoding = tiktoken.encoding_for_model(self.engine.model) def evaluate_methods_on_gene_set( - self, gene_set: GeneSet, max_size=999, n=4 + self, gene_set: GeneSet, max_size=999, n=4, randomize_gene_descriptions=False, **kwargs ) -> List[GeneSetComparison]: """ Perform evaluation of different methods on a gene set. @@ -115,6 +115,7 @@ def evaluate_methods_on_gene_set( :param gene_set: Gene set to evaluate :param max_size: Maximum size of gene set, above this the gene set will be truncated :param n: Number of dropouts to perform + :param randomize_gene_descriptions: use random gene descriptions """ if n < 1: raise ValueError(f"n must be greater than 0: {n}") diff --git a/src/ontogpt/prompts/enrichment/__init__.py b/src/ontogpt/prompts/enrichment/__init__.py index e69de29bb..5f45bd4f4 100644 --- a/src/ontogpt/prompts/enrichment/__init__.py +++ b/src/ontogpt/prompts/enrichment/__init__.py @@ -0,0 +1,4 @@ +from pathlib import Path + +ENRICHMENT_PROMPT_DIR_PATH = Path(__file__).parent +DEFAULT_ENRICHMENT_PROMPT = ENRICHMENT_PROMPT_DIR_PATH / "gene_set_summarization" \ No newline at end of file diff --git a/src/ontogpt/prompts/enrichment/gene_set_summarization.jinja2 b/src/ontogpt/prompts/enrichment/gene_set_summarization.jinja2 index 35b9face8..e7cc2e478 100644 --- a/src/ontogpt/prompts/enrichment/gene_set_summarization.jinja2 +++ b/src/ontogpt/prompts/enrichment/gene_set_summarization.jinja2 @@ -1,4 +1,8 @@ +{% if annotations %} I will give you a list of genes together with descriptions of their functions. +{% else %} +I will give you a list of genes. +{% endif %} Perform a term enrichment test on these genes. i.e. tell me what the commonalities are in their function. Make use of classification hierarchies when you do this. @@ -16,10 +20,15 @@ Provide results in the format ### +{% if annotations %} Here are the gene summaries: {% for gd in gene_descriptions %} {{ gd[0] }}: {{ gd[1] }} -{% endfor % +{% endfor %} +{% else %} +Here are the genes: +{% for gd in gene_descriptions %}{{ gd[0] }}; {% endfor %} +{% endif %} Summary and enriched terms: From e0bc95cb94a7aaa2f7b439cc8fb57256f0a9881a Mon Sep 17 00:00:00 2001 From: cmungall Date: Sat, 29 Apr 2023 18:51:43 +0200 Subject: [PATCH 2/4] using jinja templates for enrichment prompts --- src/ontogpt/conf/synonymizer-conf.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/ontogpt/conf/synonymizer-conf.yaml diff --git a/src/ontogpt/conf/synonymizer-conf.yaml b/src/ontogpt/conf/synonymizer-conf.yaml new file mode 100644 index 000000000..6d4428df5 --- /dev/null +++ b/src/ontogpt/conf/synonymizer-conf.yaml @@ -0,0 +1,25 @@ +rules: + - type: NewSynonym + description: adding X as synonym for X-activity in GO + see_also: + - https://github.com/geneontology/go-ontology/issues/21978 + branches: + - molecular_function + match: "(.*)(activity)" + match_scope: "*" + replacement: "\\1" + tests: + - input: "ChS ABC lyase activity" + output: "ChS ABC lyase" + ontology: GO + - synonymizer: + the_rule: Remove parentheses bound info from the label. + match: r'\([^)]*\)' + match_scope: "*" + replacement: "" + - synonymizer: + the_rule: Synonymize foodon food products + match: "(.*) food product" + match_scope: "FOODON" + replacement: "\\1" + From dcc42e421ed90607fa8d3af962f4ab6eabd46afc Mon Sep 17 00:00:00 2001 From: cmungall Date: Sat, 29 Apr 2023 18:53:27 +0200 Subject: [PATCH 3/4] lint --- src/ontogpt/cli.py | 8 +++++--- src/ontogpt/engines/enrichment.py | 18 ++++++++++++++---- src/ontogpt/prompts/enrichment/__init__.py | 2 +- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/ontogpt/cli.py b/src/ontogpt/cli.py index 0b4c9894b..0b9b0d812 100644 --- a/src/ontogpt/cli.py +++ b/src/ontogpt/cli.py @@ -609,7 +609,9 @@ def enrichment( if not syms: break aliases[sym] = syms.pop() - results = ke.summarize(spike_gene_set, normalize=resolver is not None, gene_aliases=aliases, **kwargs) + results = ke.summarize( + spike_gene_set, normalize=resolver is not None, gene_aliases=aliases, **kwargs + ) else: results = ke.summarize(gene_set, normalize=resolver is not None, **kwargs) if results.truncation_factor is not None and results.truncation_factor < 1.0: @@ -808,10 +810,10 @@ def entity_similarity(terms, ontology, output, model, output_format, **kwargs): default=1, help="Max number of genes to drop", ) -#@click.option( +# @click.option( # "--randomize-gene-descriptions/--no-randomize-gene-descriptions", # help="DO NOT USE EXCEPT FOR EVALUATION PUPOSES." -#) +# ) @click.option( "--annotations-path", "-A", diff --git a/src/ontogpt/engines/enrichment.py b/src/ontogpt/engines/enrichment.py index 194a8321d..3eaace6e4 100644 --- a/src/ontogpt/engines/enrichment.py +++ b/src/ontogpt/engines/enrichment.py @@ -29,6 +29,7 @@ MECHANISM_KEYWORD = "Mechanism" ENRICHED_TERMS_KEYWORD = "Enriched Terms" + class GeneDescriptionSource(Enum): NONE = "none" ONTOLOGICAL_SYNOPSIS = "ontological" @@ -145,13 +146,15 @@ def summarize( logging.debug(f"Manual synopsis: {desc}") gene_tuples.append((gene_id, symbol, desc)) logging.info(f"Found {len(gene_tuples)} gene summaries") - #if not annotations: + # if not annotations: # return self.summarize_annotation_free(gene_tuples) if gene_aliases: gene_tuples = [(id, gene_aliases.get(sym, sym), desc) for id, sym, desc in gene_tuples] if not prompt_template: prompt_template = str(f"{DEFAULT_ENRICHMENT_PROMPT}.jinja2") - prompt, tf = self._prompt_from_template(gene_tuples, template=prompt_template, annotations=annotations) + prompt, tf = self._prompt_from_template( + gene_tuples, template=prompt_template, annotations=annotations + ) response_text = self.client.complete(prompt, max_tokens=self.completion_length) response_token_length = len(self.encoding.encode(response_text)) logging.info(f"Response token length: {response_token_length}") @@ -169,7 +172,11 @@ def summarize( return payload def _prompt_from_template( - self, genes: List[GENE_TUPLE], template: str, truncation_factor=1.0, annotations=True, + self, + genes: List[GENE_TUPLE], + template: str, + truncation_factor=1.0, + annotations=True, ) -> Tuple[str, float]: if isinstance(template, Path): template = str(template) @@ -202,7 +209,10 @@ def _prompt_from_template( if prompt_length > max_len: # TODO: check this logging.warning(f"Prompt is too long; toks: {prompt_length} len: {len(prompt)}") return self._prompt_from_template( - genes, template, truncation_factor=truncation_factor * 0.8, annotations=annotations, + genes, + template, + truncation_factor=truncation_factor * 0.8, + annotations=annotations, ) return prompt, truncation_factor diff --git a/src/ontogpt/prompts/enrichment/__init__.py b/src/ontogpt/prompts/enrichment/__init__.py index 5f45bd4f4..debe5a8a8 100644 --- a/src/ontogpt/prompts/enrichment/__init__.py +++ b/src/ontogpt/prompts/enrichment/__init__.py @@ -1,4 +1,4 @@ from pathlib import Path ENRICHMENT_PROMPT_DIR_PATH = Path(__file__).parent -DEFAULT_ENRICHMENT_PROMPT = ENRICHMENT_PROMPT_DIR_PATH / "gene_set_summarization" \ No newline at end of file +DEFAULT_ENRICHMENT_PROMPT = ENRICHMENT_PROMPT_DIR_PATH / "gene_set_summarization" From 618bff66d5e91d621765a590bb23d003c0cf9683 Mon Sep 17 00:00:00 2001 From: cmungall Date: Sat, 29 Apr 2023 18:54:09 +0200 Subject: [PATCH 4/4] lint --- src/ontogpt/cli.py | 4 ++-- src/ontogpt/engines/enrichment.py | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ontogpt/cli.py b/src/ontogpt/cli.py index 0b9b0d812..95d49a392 100644 --- a/src/ontogpt/cli.py +++ b/src/ontogpt/cli.py @@ -601,10 +601,10 @@ def enrichment( spike_gene_set = parse_gene_set(randomize_gene_descriptions_using_file) aliases = {} if not spike_gene_set.gene_symbols: - raise ValueError(f"No gene symbols for spike set") + raise ValueError("No gene symbols for spike set") syms = copy(gene_set.gene_symbols) if len(spike_gene_set.gene_symbols) < len(gene_set.gene_symbols): - raise ValueError(f"Not enough genes in spike set") + raise ValueError("Not enough genes in spike set") for sym in spike_gene_set.gene_symbols: if not syms: break diff --git a/src/ontogpt/engines/enrichment.py b/src/ontogpt/engines/enrichment.py index 3eaace6e4..8cb668abc 100644 --- a/src/ontogpt/engines/enrichment.py +++ b/src/ontogpt/engines/enrichment.py @@ -5,9 +5,8 @@ from dataclasses import dataclass, field from enum import Enum from pathlib import Path -from typing import Dict, List, Optional, Tuple, Union +from typing import Dict, List, Optional, Tuple -from deprecation import deprecated from jinja2 import Template from oaklib import BasicOntologyInterface, get_adapter