{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "af118d77-d87a-4687-be5b-e810a24c403e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-07-10 11:42:23 +0000 | io:INFO | Loaded TOML config file successfully.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\transformers\\utils\\generic.py:441: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", " _torch_pytree._register_pytree_node(\n", "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\huggingface_hub\\file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n", " warnings.warn(\n", "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\transformers\\utils\\generic.py:309: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", " _torch_pytree._register_pytree_node(\n", "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\transformers\\utils\\generic.py:309: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", " _torch_pytree._register_pytree_node(\n", "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\huggingface_hub\\file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n", " warnings.warn(\n" ] } ], "source": [ "from lang_main import io\n", "from lang_main.analysis.graphs import rescale_edge_weights, get_graph_metadata\n", "\n", "from pathlib import Path\n", "import pickle\n", "import base64\n", "import os\n", "from logging import NullHandler\n", "\n", "import numpy as np\n", "\n", "import py4cytoscape as p4c\n", "import py4cytoscape.py4cytoscape_logger_settings as p4c_logging\n", "p4c.set_summary_logger(False)\n", "#p4c_logging._SUMMARY_LOG_LEVEL = 'ERROR'\n", "# p4c_logging._DETAIL_LOG_LEVEL = 'ERROR'\n", "p4c.py4cytoscape_logger.detail_logger.setLevel('ERROR')\n", "p4c.py4cytoscape_logger.detail_logger.removeHandler(p4c.py4cytoscape_logger.detail_handler)\n", "p4c.py4cytoscape_logger.detail_logger.addHandler(NullHandler())" ] }, { "cell_type": "code", "execution_count": 2, "id": "4256081a-6364-4e8f-8cfd-799912ca6b94", "metadata": {}, "outputs": [], "source": [ "res_path = Path(r'A:\\Arbeitsaufgaben\\lang-main\\scripts\\results\\test_20240619')\n", "assert res_path.exists()" ] }, { "cell_type": "code", "execution_count": 3, "id": "e9a92ad6-5e63-49c4-b9e7-9f81da8549fe", "metadata": {}, "outputs": [], "source": [ "#obj = 'TK-GRAPH_POSTPROCESSING.pkl'\n", "obj = 'TK-GRAPH_ANALYSIS.pkl'\n", "load_pth = res_path / obj\n", "assert load_pth.exists()" ] }, { "cell_type": "code", "execution_count": 5, "id": "c2421d89-ed8c-41dd-b363-ad5b5b716704", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-07-10 11:01:10 +0000 | io:INFO | Loaded file successfully.\n" ] } ], "source": [ "ret = io.load_pickle(load_pth)" ] }, { "cell_type": "code", "execution_count": 6, "id": "ca25a7f2-84af-4b5e-89d6-b139fca35617", "metadata": {}, "outputs": [], "source": [ "tkg = ret[0]" ] }, { "cell_type": "code", "execution_count": 7, "id": "ff7e7ab6-67d9-4a2c-b668-cf10740f7542", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "TokenGraph(name: TokenGraph, number of nodes: 158, number of edges: 192)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tkg" ] }, { "cell_type": "code", "execution_count": 19, "id": "0d65a960-c17a-4710-9dc0-5ca0b6c16680", "metadata": {}, "outputs": [], "source": [ "tkg.rescaled_weights = False" ] }, { "cell_type": "code", "execution_count": 20, "id": "842e01fa-29cd-4028-9461-c7af24e01c33", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tkg.nodes['Wartungstätigkeit']" ] }, { "cell_type": "code", "execution_count": null, "id": "8d36d22e-73fd-44fe-ab08-98f8186bc6b2", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 21, "id": "1e61aca3-efea-4e38-8174-5ca4b2585256", "metadata": {}, "outputs": [], "source": [ "obj = 'TK-GRAPH_POSTPROCESSING.pkl'\n", "# obj = 'TK-GRAPH_ANALYSIS.pkl'\n", "load_pth = res_path / obj\n", "assert load_pth.exists()" ] }, { "cell_type": "code", "execution_count": 22, "id": "5d83c04c-03ab-4086-a4e9-ae430e4c6090", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-07-10 08:16:41 +0000 | io:INFO | Loaded file successfully.\n" ] } ], "source": [ "ret = io.load_pickle(load_pth)" ] }, { "cell_type": "code", "execution_count": 23, "id": "4718b54e-0891-4f70-8c67-90c439bc8bfd", "metadata": {}, "outputs": [], "source": [ "tkg = ret[0]" ] }, { "cell_type": "code", "execution_count": 24, "id": "ddcb4ff0-eac4-45ba-9c6e-83ada4b0276c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "TokenGraph(name: TokenGraph, number of nodes: 6028, number of edges: 17950)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tkg" ] }, { "cell_type": "code", "execution_count": 25, "id": "97c46ca7-ca9f-4d11-8d86-cfbd819b7573", "metadata": {}, "outputs": [], "source": [ "tkg.rescaled_weights = False" ] }, { "cell_type": "code", "execution_count": 26, "id": "b73844e0-4242-4a8c-b552-48f10df34cc0", "metadata": {}, "outputs": [], "source": [ "directed, undirected = tkg.rescale_edge_weights()" ] }, { "cell_type": "code", "execution_count": 28, "id": "593b9f87-4e9f-45e4-9367-55347924357b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'num_nodes': 6028,\n", " 'num_edges': 17950,\n", " 'min_edge_weight': 0.0952,\n", " 'max_edge_weight': 1.0,\n", " 'node_memory': 382321,\n", " 'edge_memory': 1005200,\n", " 'total_memory': 1387521}" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "directed.metadata_directed" ] }, { "cell_type": "code", "execution_count": 29, "id": "aed4354a-69e4-4215-bd4b-a6c7c37c3ac5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'num_nodes': 6028,\n", " 'num_edges': 17554,\n", " 'min_edge_weight': 0.09520000219345093,\n", " 'max_edge_weight': 1.7527999877929688,\n", " 'node_memory': 382321,\n", " 'edge_memory': 983024,\n", " 'total_memory': 1365345}" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "directed.metadata_undirected" ] }, { "cell_type": "code", "execution_count": 30, "id": "587de2ae-26ed-42f5-a8bd-104f9cbf1490", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'num_nodes': 6028,\n", " 'num_edges': 17554,\n", " 'min_edge_weight': 0.0952,\n", " 'max_edge_weight': 1.0,\n", " 'node_memory': 382321,\n", " 'edge_memory': 983024,\n", " 'total_memory': 1365345}" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_graph_metadata(undirected)" ] }, { "cell_type": "code", "execution_count": null, "id": "5c2934c5-2e19-4a33-b7bf-262993e3fabc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 12, "id": "f6fc2c6a-2171-411d-92f1-4ab694adda7b", "metadata": {}, "outputs": [], "source": [ "Gtest = rescale_edge_weights(tkg)" ] }, { "cell_type": "markdown", "id": "859be6a3-a919-433a-a0a7-f4d74cdc6bf7", "metadata": {}, "source": [ "break_early = False\n", "i = 0\n", "for idx, (node1, node2) in enumerate(list(Gtest.edges)):\n", " if break_early and i == 10:\n", " break\n", " Gtest[node1][node2]['weight'] = adjusted_weights[idx]\n", " \n", " i += 1" ] }, { "cell_type": "code", "execution_count": 13, "id": "f381b25a-6149-4a2a-876c-4cbd8bb9bd04", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wartungstätigkeit Vorgabe 1.0\n", "Wartungstätigkeit Maschinenhersteller 1.0\n", "Wartungstätigkeit Maschinenbediener 0.8215\n", "Wartungstätigkeit Laserabteilung 0.8215\n", "Wartungstätigkeit Arbeitsplan 0.8219\n", "Wartungstätigkeit abarbeiten 0.8215\n", "Wartungstätigkeit Webmaschinenkontrollliste 0.2534\n", "Wartungstätigkeit sehen 0.2534\n", "Vorgabe Maschinenhersteller 1.0\n", "Vorgabe Wartungsplan 0.9181\n" ] } ], "source": [ "break_early = True\n", "i = 0\n", "for n1, n2, w in Gtest.edges.data('weight'):\n", " if break_early and i == 10:\n", " break\n", " print(n1, n2, w)\n", "\n", " i += 1" ] }, { "cell_type": "code", "execution_count": 14, "id": "c45a8136-2a81-4ede-a087-cf86ce85d939", "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "'TokenGraph' object has no attribute 'rescaled_weights'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[14], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mGtest\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_undirected\u001b[49m\u001b[43m(\u001b[49m\u001b[43minplace\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mA:\\Arbeitsaufgaben\\lang-main\\src\\lang_main\\analysis\\graphs.py:481\u001b[0m, in \u001b[0;36mTokenGraph.to_undirected\u001b[1;34m(self, inplace, logging)\u001b[0m\n\u001b[0;32m 479\u001b[0m \u001b[38;5;66;03m# cast to integer edge weights only if edges were not rescaled previously\u001b[39;00m\n\u001b[0;32m 480\u001b[0m cast_int: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m--> 481\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrescaled_weights\u001b[49m:\n\u001b[0;32m 482\u001b[0m cast_int \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m 484\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_undirected \u001b[38;5;241m=\u001b[39m convert_graph_to_undirected(\n\u001b[0;32m 485\u001b[0m graph\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 486\u001b[0m logging\u001b[38;5;241m=\u001b[39mlogging,\n\u001b[0;32m 487\u001b[0m cast_int\u001b[38;5;241m=\u001b[39mcast_int,\n\u001b[0;32m 488\u001b[0m )\n", "\u001b[1;31mAttributeError\u001b[0m: 'TokenGraph' object has no attribute 'rescaled_weights'" ] } ], "source": [ "Gtest.to_undirected(inplace=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "303d8d0c-9320-4739-adf6-ac9ba82731de", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 15, "id": "a7929935-3bd2-4eb8-907c-4d37251f11ea", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wartungstätigkeit Vorgabe 1.0\n", "Wartungstätigkeit Maschinenhersteller 1.0\n", "Wartungstätigkeit sehen 0.2533999979496002\n", "Wartungstätigkeit Maschinenbediener 0.8215000033378601\n", "Wartungstätigkeit Laserabteilung 0.8215000033378601\n", "Wartungstätigkeit Arbeitsplan 0.8219000101089478\n", "Wartungstätigkeit abarbeiten 0.8215000033378601\n", "Wartungstätigkeit Webmaschinenkontrollliste 0.2533999979496002\n", "Vorgabe Maschinenhersteller 1.0\n", "Vorgabe Wartungsplan 0.9180999994277954\n" ] } ], "source": [ "break_early = True\n", "i = 0\n", "for n1, n2, w in Gtest.undirected.edges.data('weight'):\n", " if break_early and i == 10:\n", " break\n", " print(n1, n2, w)\n", "\n", " i += 1" ] }, { "cell_type": "code", "execution_count": 16, "id": "4df89d59-3832-4b6d-9eae-b3220b6f7e5b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'num_nodes': 6028,\n", " 'num_edges': 17554,\n", " 'min_edge_weight': 0.09520000219345093,\n", " 'max_edge_weight': 1.7527999877929688,\n", " 'node_memory': 382321,\n", " 'edge_memory': 983024,\n", " 'total_memory': 1365345}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Gtest.metadata_undirected" ] }, { "cell_type": "code", "execution_count": null, "id": "11b9a5b4-8319-44e8-b0eb-0434f952a28e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 23, "id": "c63770ed-5748-4484-816f-22d0e327af73", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'weight' not in Gtest['Wartungstätigkeit']['Vorgabe']" ] }, { "cell_type": "code", "execution_count": null, "id": "62e5d9f4-69c8-4990-9a64-6e2f40031d6f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "ca7c4578-c9bb-4b0b-b261-e0208d6cb970", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 17, "id": "adf02de4-f22c-499f-91bf-ac1be1b3186f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'num_nodes': 6028,\n", " 'num_edges': 17950,\n", " 'min_edge_weight': 0.0952,\n", " 'max_edge_weight': 1.0,\n", " 'node_memory': 382321,\n", " 'edge_memory': 1005200,\n", " 'total_memory': 1387521}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Gtest.metadata_directed" ] }, { "cell_type": "code", "execution_count": null, "id": "9e939c9c-ba9e-4576-9d85-afba8481af93", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 21, "id": "bfafdc8b-418d-4dd8-b986-d36082ba870e", "metadata": {}, "outputs": [], "source": [ "c_comps = nx.connected_components(Gtest.undirected)" ] }, { "cell_type": "code", "execution_count": 22, "id": "abf5603d-dab9-49a0-8c86-d2429a36d24d", "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5714\n", "2\n", "2\n", "2\n", "3\n", "4\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "4\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "3\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "2\n", "2\n", "4\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "4\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "4\n", "2\n", "3\n", "2\n", "2\n", "2\n", "3\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n" ] } ], "source": [ "for comp in c_comps:\n", " print(len(comp))" ] }, { "cell_type": "code", "execution_count": null, "id": "80db8d16-fa48-417d-91b0-37e5b32f3b74", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "b2e2cbbe-68ef-4ea0-9ed0-b114be1efd08", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "55665c2f-9a86-47f4-9125-557666e1f541", "metadata": {}, "source": [ "---\n", "\n", "# Load re-scaled Token Graph" ] }, { "cell_type": "code", "execution_count": 3, "id": "2a3be1eb-b289-46ab-8d70-53110ad2806c", "metadata": {}, "outputs": [], "source": [ "#obj = 'TK-GRAPH_POSTPROCESSING.pkl'\n", "obj = 'TK-GRAPH_ANALYSIS_RESCALED.pkl'\n", "load_pth = res_path / obj\n", "assert load_pth.exists()" ] }, { "cell_type": "code", "execution_count": 4, "id": "64d8ba18-b1e2-470d-8bf5-9dd7cfec31de", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-07-10 11:42:39 +0000 | io:INFO | Loaded file successfully.\n" ] } ], "source": [ "ret = io.load_pickle(load_pth)" ] }, { "cell_type": "code", "execution_count": 5, "id": "d80522a0-c13a-42d3-af9d-8e10914c7831", "metadata": {}, "outputs": [], "source": [ "tk_resc = ret[1]" ] }, { "cell_type": "code", "execution_count": 6, "id": "4a19d096-27f8-4626-97ee-31c0f84a294f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'num_nodes': 158,\n", " 'num_edges': 189,\n", " 'min_edge_weight': 0.0952,\n", " 'max_edge_weight': 1.0,\n", " 'node_memory': 9908,\n", " 'edge_memory': 10584,\n", " 'total_memory': 20492}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_graph_metadata(tk_resc)" ] }, { "cell_type": "code", "execution_count": null, "id": "2272d230-6fe0-4ade-9a09-9f4277d9b58c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 7, "id": "781d2906-f2cb-447a-b8b9-c82d9ae7e29f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "You are connected to Cytoscape!\n" ] }, { "data": { "text/plain": [ "'You are connected to Cytoscape!'" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#import py4cytoscape as p4c\n", "p4c.cytoscape_ping()" ] }, { "cell_type": "code", "execution_count": 16, "id": "28b25e27-ed77-4c23-84d5-e3dec004e4fe", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Applying default style...\n", "Applying preferred layout\n" ] }, { "data": { "text/plain": [ "17998" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.create_network_from_networkx(tk_resc, title='test', collection='lang_main')" ] }, { "cell_type": "code", "execution_count": 17, "id": "697647da-3b8b-4029-bec9-af2e2bb6984a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'Attribute Grid Layout': 'attribute-grid',\n", " 'Degree Sorted Circle Layout': 'degree-circle',\n", " 'Group Attributes Layout': 'attributes-layout',\n", " 'Edge-weighted Spring Embedded Layout': 'kamada-kawai',\n", " 'Prefuse Force Directed Layout': 'force-directed',\n", " 'Compound Spring Embedder (CoSE)': 'cose',\n", " 'Hierarchical Layout': 'hierarchical',\n", " 'Attribute Circle Layout': 'attribute-circle',\n", " 'Stacked Node Layout': 'stacked-node-layout',\n", " 'Circular Layout': 'circular',\n", " 'Grid Layout': 'grid',\n", " 'Edge-weighted Force directed (BioLayout)': 'fruchterman-rheingold',\n", " 'Inverted Self-Organizing Map Layout': 'isom',\n", " 'Prefuse Force Directed OpenCL Layout': 'force-directed-cl'}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_layout_name_mapping()" ] }, { "cell_type": "code", "execution_count": 18, "id": "fa15c057-d453-4c7e-8af2-18220ea90651", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['numIterations',\n", " 'defaultSpringCoefficient',\n", " 'defaultSpringLength',\n", " 'defaultNodeMass',\n", " 'isDeterministic',\n", " 'singlePartition']" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_layout_property_names('force-directed')" ] }, { "cell_type": "code", "execution_count": 19, "id": "6f48d9cc-f527-4b33-9477-60636a480371", "metadata": {}, "outputs": [], "source": [ "layout_props = {\n", " 'numIterations': 1000,\n", " 'defaultSpringCoefficient': 1e-4,\n", " 'defaultSpringLength': 45,\n", " 'defaultNodeMass': 12,\n", " 'isDeterministic': True,\n", " 'singlePartition': False,\n", "}" ] }, { "cell_type": "code", "execution_count": 20, "id": "d542b2ea-11d5-4802-b1b9-65e5e12f6d38", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "''" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.set_layout_properties('force-directed', layout_props)" ] }, { "cell_type": "code", "execution_count": 31, "id": "514e3f07-061e-4488-a770-02ef13b56dcd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'boolean'" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_layout_property_type('kamada-kawai', 'randomize')" ] }, { "cell_type": "code", "execution_count": 21, "id": "c1069996-b638-4bfa-8ad4-f750a33022d6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.layout_network('force-directed', 'test')" ] }, { "cell_type": "code", "execution_count": 22, "id": "d972ff5a-e695-43b6-b8c5-ab295fd5de3d", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.notebook_export_show_image()" ] }, { "cell_type": "code", "execution_count": null, "id": "b2209508-dd98-4d10-8efc-099e2cd0ab50", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "3796359f-3112-4bbf-ae76-e52b3602c9f0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "c8cba3d9-0145-4b37-9ebf-07f0e3c61815", "metadata": {}, "source": [ "---\n", "\n", "# Py4Cytoscape" ] }, { "cell_type": "code", "execution_count": 11, "id": "fcd9247f-c4f9-4f73-9fd3-2ab56700073f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Calling cytoscape_ping()\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀCalling cytoscape_version_info(base_url='http://127.0.0.1:1234/v1')\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀCalling cyrest_get('version', base_url='http://127.0.0.1:1234/v1')\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀHTTP GET(http://127.0.0.1:1234/v1/version)\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀOK[200], content: {\"apiVersion\":\"v1\",\"cytoscapeVersion\":\"3.10.2\"}\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀReturning 'cyrest_get': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2'}\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀReturning 'cytoscape_version_info': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2', 'automationAPIVersion': '1.9.0', 'py4cytoscapeVersion': '1.9.0'}\n", "You are connected to Cytoscape!\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Returning 'cytoscape_ping': 'You are connected to Cytoscape!'\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | --------------------\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Calling cytoscape_version_info()\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀCalling cyrest_get('version', base_url='http://127.0.0.1:1234/v1')\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀHTTP GET(http://127.0.0.1:1234/v1/version)\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀOK[200], content: {\"apiVersion\":\"v1\",\"cytoscapeVersion\":\"3.10.2\"}\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀReturning 'cyrest_get': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2'}\n", "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Returning 'cytoscape_version_info': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2', 'automationAPIVersion': '1.9.0', 'py4cytoscapeVersion': '1.9.0'}\n", "2024-07-10 11:19:16 +0000 | py4cytoscape_logger:DEBUG | --------------------\n" ] }, { "data": { "text/plain": [ "{'apiVersion': 'v1',\n", " 'cytoscapeVersion': '3.10.2',\n", " 'automationAPIVersion': '1.9.0',\n", " 'py4cytoscapeVersion': '1.9.0'}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import py4cytoscape as p4c\n", "dir(p4c)\n", "p4c.cytoscape_ping()\n", "p4c.cytoscape_version_info()" ] }, { "cell_type": "code", "execution_count": 5, "id": "b9290659-e33c-47fc-8d89-7aa3dd6e843a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "nodes = pd.DataFrame(data={'id': [\"node 0\",\"node 1\",\"node 2\",\"node 3\"], 'group': [\"A\",\"A\",\"B\",\"B\"], 'score': [20,10,15,5]})\n", "edges = pd.DataFrame(data={'source': [\"node 0\",\"node 0\",\"node 0\",\"node 2\"], 'target': [\"node 1\",\"node 2\",\"node 3\",\"node 3\"], 'interaction': [\"inhibits\",\"interacts\",\"activates\",\"interacts\"], 'weight': [5.1,3.0,5.2,9.9]})" ] }, { "cell_type": "code", "execution_count": 6, "id": "979d6def-83ac-47f6-ac6f-0d20ddf48d48", "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", "
idgroupscore
0node 0A20
1node 1A10
2node 2B15
3node 3B5
\n", "
" ], "text/plain": [ " id group score\n", "0 node 0 A 20\n", "1 node 1 A 10\n", "2 node 2 B 15\n", "3 node 3 B 5" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nodes" ] }, { "cell_type": "code", "execution_count": 7, "id": "81702429-5735-48de-96a4-1f32c7c7d68c", "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", "
sourcetargetinteractionweight
0node 0node 1inhibits5.1
1node 0node 2interacts3.0
2node 0node 3activates5.2
3node 2node 3interacts9.9
\n", "
" ], "text/plain": [ " source target interaction weight\n", "0 node 0 node 1 inhibits 5.1\n", "1 node 0 node 2 interacts 3.0\n", "2 node 0 node 3 activates 5.2\n", "3 node 2 node 3 interacts 9.9" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "edges" ] }, { "cell_type": "code", "execution_count": 8, "id": "6b29d561-fffd-4a5b-91c1-8fb6a075ae4f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Applying default style...\n", "Applying preferred layout\n" ] }, { "data": { "text/plain": [ "128" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.create_network_from_data_frames(nodes, edges, title=\"my first network\", collection=\"DataFrame Example\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "2e6878db-40c0-4ae6-89d6-9b1a5e50baaf", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.notebook_export_show_image()" ] }, { "cell_type": "code", "execution_count": 11, "id": "66128f17-16eb-43d3-9d63-bbac3f8f803a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'message': 'Visual Style applied.'}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.set_visual_style('Marquee')" ] }, { "cell_type": "code", "execution_count": 13, "id": "ca0cc760-74e4-4c4a-b78a-c932ab16ab06", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.notebook_export_show_image()" ] }, { "cell_type": "code", "execution_count": 14, "id": "24c29cb3-cf64-4fad-8b1a-b0962f1005b4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'message': 'Visual Style applied.'}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "style_name = \"myStyle\"\n", "defaults = {'NODE_SHAPE': \"diamond\", 'NODE_SIZE': 30, 'EDGE_TRANSPARENCY': 120, 'NODE_LABEL_POSITION': \"W,E,c,0.00,0.00\"}\n", "nodeLabels = p4c.map_visual_property('node label', 'id', 'p') #'p' means 'passthrough' mapping\n", "edgeWidth = p4c.map_visual_property('edge width', 'weight', 'p') #'p' means 'passthrough' mapping\n", "p4c.create_visual_style(style_name, defaults, [nodeLabels, edgeWidth])\n", "p4c.set_visual_style(style_name)" ] }, { "cell_type": "code", "execution_count": 15, "id": "1dfb553a-2367-463e-8a3d-0d232c2aedd0", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFwCAYAAADQcmZ5AAAzjElEQVR4Xu3de2xcZX7w8VBQaCAhC0lY2Fe0Eu2ibRsQUgGJf9oVUlVahFoFFqmif2yLigR/AOUF9CJCAVG20W7/WMGCFihbLbub+H6N41tsx46d2HEc20kcx4nj2I7t+BrfHcce53n9e7TnaOY5nrHPeMYzc873I/2k9cyZ4xsr+Zs5z3k2KQAAAACIg03mAwAAAAAQC8QGAAAAgLggNgAAAADEBbEBAAAAIC6IDQAAEFOBQMB8CIBPERsAACBm+vv71e7du1VBQYH5FAAfIjYAAEBMSGg89NBD6m82bVJ3bd5McAAgNgAAwPpZofHicmjUL88vCA4AitgAAADrZIaGNQQHAGIDAABELVxoEBwABLEBAACislpoEBwAiA0AAODaWkOD4AD8jdgAAACuuA0NggPwL2IDAACsWbShQXAA/kRsAACANVlvaBAcgP8QGwAAYFWxCg1rCA7AH4gNAABS3OjoqFpaWjIfXrObN2+qkZER82FbrEPDGoID8D5iAwCAFHf77bery5cvmw+v2c9//nP1t3/7t+bDWrxCwxqCA/A2YgMAgBQXbWzMzs6qf//3f1e33nrrirER79CwhuAAvIvYAAAgAQYGBtTHH3+sSkpK1AsvvKBefvlldebMGfv54eFh9e6776rnnntOvffee2psbMx+rqurS7366qvqxRdfVBUVFSGxMTk5qT744AP1/PPPq71796qJiQn7dSb5nHL+n/zkJ47Y2KjQsIbgALyJ2AAAIAEkLO644w719NNP6z+wX3nlFbVr1y41Pz+vxsfH1QMPPKDeeOMNVVlZqV577TX14IMP6nciJB7uv/9+9f7776uysjL11FNPqVtuuUXHxuLionr44Yd1iFRVVam33npLfyyPr0Q+j/j6669DYmOjQ8MaggPwHmIDAIAEkNjYtPzH9eDgoP44EAjodyja29vV559/rp544omQ4x9//HEdBTJPPvmk/Xhvb68+j8RGZmamjotgjz32mMrOzg55zGTGRmFhofrD225TX60QBPGc8uX5k+X5t3/7t6CvDkAqIzYAAEgAiY0tW7aEPLZ9+3b9+JtvvqkvcQomH7/99tvqnXfeUS+99FLIc3fffbeODbksa/PmzWrHjh32yMeffPJJyPEmMzZEVlaW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", "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.notebook_export_show_image()" ] }, { "cell_type": "code", "execution_count": 20, "id": "5d535abb-83f0-40c8-b781-5b3129183ebf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Applying default style...\n", "Applying preferred layout\n" ] }, { "data": { "text/plain": [ "397" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nodes = pd.DataFrame(data={'id': [\"A\", \"B\", \"C\", \"D\"]})\n", "edges = pd.DataFrame(data={'source': [\"C\", \"B\", \"B\", \"B\"], 'target': [\"D\", \"A\", \"D\", \"C\"]})\n", "\n", "p4c.create_network_from_data_frames(nodes, edges, title=\"simple network\", collection=\"Biological Example\")" ] }, { "cell_type": "code", "execution_count": 21, "id": "bb8bf383-7760-434e-ab3d-71b976024006", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.notebook_export_show_image()" ] }, { "cell_type": "code", "execution_count": 22, "id": "1c4ab4f0-1f4d-4b9e-8b56-ec0f648531cb", "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", "
SUIDshared nameidnameselected
427427AAAFalse
430430BBBFalse
433433CCCFalse
436436DDDFalse
\n", "
" ], "text/plain": [ " SUID shared name id name selected\n", "427 427 A A A False\n", "430 430 B B B False\n", "433 433 C C C False\n", "436 436 D D D False" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_table_columns()" ] }, { "cell_type": "code", "execution_count": 23, "id": "0a7b318d-b4e1-4eef-ab13-14e9b7bfa80e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['SUID', 'shared name', 'id', 'name', 'selected']" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_table_column_names()" ] }, { "cell_type": "code", "execution_count": 25, "id": "29ba0973-1bc8-4987-b4ff-f3e50f9df573", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'Attribute Circle Layout': 'attribute-circle',\n", " 'Stacked Node Layout': 'stacked-node-layout',\n", " 'Attribute Grid Layout': 'attribute-grid',\n", " 'Degree Sorted Circle Layout': 'degree-circle',\n", " 'Circular Layout': 'circular',\n", " 'Group Attributes Layout': 'attributes-layout',\n", " 'Edge-weighted Spring Embedded Layout': 'kamada-kawai',\n", " 'Prefuse Force Directed Layout': 'force-directed',\n", " 'Compound Spring Embedder (CoSE)': 'cose',\n", " 'Grid Layout': 'grid',\n", " 'Hierarchical Layout': 'hierarchical',\n", " 'Edge-weighted Force directed (BioLayout)': 'fruchterman-rheingold',\n", " 'Inverted Self-Organizing Map Layout': 'isom',\n", " 'Prefuse Force Directed OpenCL Layout': 'force-directed-cl'}" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_layout_name_mapping()" ] }, { "cell_type": "code", "execution_count": 29, "id": "63aba4a3-f53f-4eb0-ab6b-17bbd1b58e78", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['m_averageIterationsPerNode',\n", " 'm_nodeDistanceStrengthConstant',\n", " 'm_nodeDistanceRestLengthConstant',\n", " 'm_disconnectedNodeDistanceSpringStrength',\n", " 'm_disconnectedNodeDistanceSpringRestLength',\n", " 'm_anticollisionSpringStrength',\n", " 'm_layoutPass',\n", " 'singlePartition',\n", " 'unweighted',\n", " 'randomize']" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_layout_property_names('kamada-kawai')" ] }, { "cell_type": "code", "execution_count": 31, "id": "eec4f428-3abd-40da-a291-112b3e0d6f65", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'boolean'" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_layout_property_type('kamada-kawai', 'randomize')" ] }, { "cell_type": "code", "execution_count": 32, "id": "98eb2412-5f24-4180-beac-2cadac9bb35e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.get_layout_property_value('kamada-kawai', 'randomize')" ] }, { "cell_type": "code", "execution_count": null, "id": "3bdb2b5f-609b-4bbf-8e42-a8ec07e5bda2", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 34, "id": "fc3d4dd1-a132-4f08-adc3-add2eb25cc27", "metadata": {}, "outputs": [], "source": [ "from pathlib import Path" ] }, { "cell_type": "code", "execution_count": 39, "id": "11beffb4-a21e-4b73-9c0c-a0ec57513ebd", "metadata": {}, "outputs": [], "source": [ "tp = Path.cwd()\n", "file = tp / 'test.svg'" ] }, { "cell_type": "code", "execution_count": 38, "id": "03696e83-9c87-4ec3-bba2-024f4747385a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'file': 'A:\\\\Arbeitsaufgaben\\\\lang-main\\\\test-notebooks.xml'}" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.export_visual_styles(str(tp))" ] }, { "cell_type": "code", "execution_count": 40, "id": "0e4068b3-7bf9-4093-8887-02b677a76fc1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'file': 'A:\\\\Arbeitsaufgaben\\\\lang-main\\\\test-notebooks\\\\test.svg'}" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p4c.export_image(str(file), type='SVG')" ] }, { "cell_type": "code", "execution_count": null, "id": "be448cd8-022c-446b-9294-2d00bc445054", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 5 }