{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "c930ce7b-e060-4021-b97c-192045f17122",
"metadata": {},
"outputs": [],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "af118d77-d87a-4687-be5b-e810a24c403e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2024-07-19 05:54:50 +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",
"import networkx as nx\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": 3,
"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": 4,
"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-19 05:54:58 +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": 8,
"id": "66901689-8b95-400a-b2fb-11d3ea215512",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tkg.rescaled_weights"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "842e01fa-29cd-4028-9461-c7af24e01c33",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'degree_weighted': 186350}"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tkg.nodes['Wartungstätigkeit']"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "8d36d22e-73fd-44fe-ab08-98f8186bc6b2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'degree_weighted': 186350}"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tkg.undirected.nodes['Wartungstätigkeit']"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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": 12,
"id": "5d83c04c-03ab-4086-a4e9-ae430e4c6090",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2024-07-19 05:56:10 +0000 | io:INFO | Loaded file successfully.\n"
]
}
],
"source": [
"ret = io.load_pickle(load_pth)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "4718b54e-0891-4f70-8c67-90c439bc8bfd",
"metadata": {},
"outputs": [],
"source": [
"tkg = ret[0]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "ddcb4ff0-eac4-45ba-9c6e-83ada4b0276c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"TokenGraph(name: TokenGraph, number of nodes: 6859, number of edges: 25499)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tkg"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "3d514552-3b55-41d1-af80-a1b559711608",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tkg.rescaled_weights"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "b73844e0-4242-4a8c-b552-48f10df34cc0",
"metadata": {},
"outputs": [],
"source": [
"directed, undirected = tkg.rescale_edge_weights()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "593b9f87-4e9f-45e4-9367-55347924357b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'num_nodes': 6859,\n",
" 'num_edges': 25499,\n",
" 'min_edge_weight': 0.0952,\n",
" 'max_edge_weight': 1.0,\n",
" 'node_memory': 433996,\n",
" 'edge_memory': 1427944,\n",
" 'total_memory': 1861940}"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"directed.metadata_directed"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "aed4354a-69e4-4215-bd4b-a6c7c37c3ac5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'num_nodes': 6859,\n",
" 'num_edges': 24796,\n",
" 'min_edge_weight': 1,\n",
" 'max_edge_weight': 92690,\n",
" 'node_memory': 433996,\n",
" 'edge_memory': 1388576,\n",
" 'total_memory': 1822572}"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"directed.metadata_undirected"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "587de2ae-26ed-42f5-a8bd-104f9cbf1490",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'num_nodes': 6859,\n",
" 'num_edges': 24796,\n",
" 'min_edge_weight': 0.0952,\n",
" 'max_edge_weight': 1.0,\n",
" 'node_memory': 433996,\n",
" 'edge_memory': 1388576,\n",
" 'total_memory': 1822572}"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get_graph_metadata(undirected)"
]
},
{
"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": 20,
"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 directed.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": 21,
"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.2534\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",
"Vorgabe Maschinenhersteller 1.0\n",
"Vorgabe Wartungsplan 0.9181\n"
]
}
],
"source": [
"break_early = True\n",
"i = 0\n",
"for n1, n2, w in 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": 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": 93,
"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": 94,
"id": "64d8ba18-b1e2-470d-8bf5-9dd7cfec31de",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2024-07-17 07:15:34 +0000 | io:INFO | Loaded file successfully.\n"
]
}
],
"source": [
"ret = io.load_pickle(load_pth)"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "d80522a0-c13a-42d3-af9d-8e10914c7831",
"metadata": {},
"outputs": [],
"source": [
"tk_resc = ret[1]"
]
},
{
"cell_type": "code",
"execution_count": 96,
"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": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get_graph_metadata(tk_resc)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "86fe9b96-2e96-4a6c-a511-6a9c16b8fd63",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wartungstätigkeit 3.1190000474452972\n",
"Vorgabe 4.145399987697601\n",
"Maschinenhersteller 2.0\n",
"Sichtkontrolle 0.8227999806404114\n",
"Reinigung 1.7093999981880188\n",
"Überprüfung 2.0071999728679657\n",
"Ölabscheider 0.7318999767303467\n",
"Kontrolle 6.2471999898552895\n",
"C-Anlage 0.6929000020027161\n",
"Stabbreithalter 0.5758000016212463\n"
]
}
],
"source": [
"break_early = True\n",
"n = 10\n",
"\n",
"for idx, (node, weighted_degree) in enumerate(tk_resc.degree(weight='weight')):\n",
" if break_early and idx == n:\n",
" break\n",
" print(node, weighted_degree)"
]
},
{
"cell_type": "code",
"execution_count": 312,
"id": "420fd2db-98d0-48df-8a01-b4355778a6e9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'Wartungstätigkeit': 3.1190000474452972,\n",
" 'Vorgabe': 4.145399987697601,\n",
" 'Maschinenhersteller': 2.0,\n",
" 'Sichtkontrolle': 0.8227999806404114,\n",
" 'Reinigung': 1.7093999981880188,\n",
" 'Überprüfung': 2.0071999728679657,\n",
" 'Ölabscheider': 0.7318999767303467,\n",
" 'Kontrolle': 6.2471999898552895,\n",
" 'C-Anlage': 0.6929000020027161,\n",
" 'Stabbreithalter': 0.5758000016212463,\n",
" 'Scharniere': 0.7002999782562256,\n",
" '--': 0.7002999782562256,\n",
" 'Schließvorrichtung': 0.7059999704360962,\n",
" 'Schloß': 0.7059999704360962,\n",
" 'Kompressorstation': 0.5514000058174133,\n",
" 'Wasseraufbereitungsanlage': 0.5105999708175659,\n",
" 'Heizungsanlage': 0.5101000070571899,\n",
" 'Druckkontrolle': 1.140199989080429,\n",
" 'bar': 1.2935999631881714,\n",
" 'machen': 1.4854000210762024,\n",
" 'gegebenenfalls': 0.4934000074863434,\n",
" 'Filter': 0.4934000074863434,\n",
" 'sauber': 0.4986000061035156,\n",
" 'Leiter': 0.6482000052928925,\n",
" 'Analyse': 0.42980000376701355,\n",
" 'Kesselwasser': 0.42980000376701355,\n",
" 'überprüfen': 0.42980000376701355,\n",
" 'Wasserverbrauch': 0.42980000376701355,\n",
" 'auffüllen': 0.7113999724388123,\n",
" 'Desifektionsmittel': 0.35569998621940613,\n",
" 'Aschenbecher': 0.7113999724388123,\n",
" 'leeren': 0.35569998621940613,\n",
" 'Wartung': 0.46550001204013824,\n",
" 'Toilette': 0.2621000111103058,\n",
" 'Wartungsplan': 2.1448000073432922,\n",
" 'sehen': 3.650799944996834,\n",
" 'Extradatum': 3.2020999789237976,\n",
" 'Kompensator': 0.20739999413490295,\n",
" 'Verschleiß': 0.6553999930620193,\n",
" 'Dichtigkeit': 0.4373999983072281,\n",
" 'Kühlturm': 0.20340000092983246,\n",
" 'schmieren': 1.4377999901771545,\n",
" 'Rieme': 0.4068000018596649,\n",
" 'Maschinenbediener': 0.5580000281333923,\n",
" 'Laserabteilung': 0.5580000281333923,\n",
" 'Arbeitsplan': 0.7273000031709671,\n",
" 'abarbeiten': 0.7170000076293945,\n",
" 'Küsters-Anlage': 0.6922999918460846,\n",
" 'Anlage': 0.6487999856472015,\n",
" 'Leckage': 0.7812000215053558,\n",
" 'prüfen': 1.5511000156402588,\n",
" 'abschmieren': 0.4147999882698059,\n",
" 'Lager': 0.4318999946117401,\n",
" 'Campen-Aufwickler': 0.20739999413490295,\n",
" 'Linearkugellager': 0.4399999976158142,\n",
" 'Campen-Abwickler': 0.20739999413490295,\n",
" 'Wumag-Trockner': 0.20739999413490295,\n",
" 'Gesamtanlage': 0.3847000002861023,\n",
" 'Beschädigung': 0.8136000037193298,\n",
" 'usw.': 0.8136000037193298,\n",
" 'Stand': 0.9007999897003174,\n",
" 'Stöppel': 0.6636999845504761,\n",
" '-Leiterprüfung': 0.8335999846458435,\n",
" 'Herr': 5.480200096964836,\n",
" 'Buschmann': 1.108900010585785,\n",
" 'derzeit': 1.4514999985694885,\n",
" 'Förster': 1.411899983882904,\n",
" 'terminieren': 0.44359999895095825,\n",
" 'reparieren': 0.1459999978542328,\n",
" 'Akku': 0.1282999962568283,\n",
" 'Firma': 3.6372000351548195,\n",
" 'Hawker': 0.1282999962568283,\n",
" 'Prüfung': 0.23270000517368317,\n",
" 'V': 0.1177000030875206,\n",
" 'Erste-Hilfe-Koffer': 0.11500000208616257,\n",
" 'orange': 0.11500000208616257,\n",
" 'Blombe': 0.46000000834465027,\n",
" 'vorhanden': 0.11500000208616257,\n",
" 'bitte': 0.11500000208616257,\n",
" 'Ticket': 0.48810001462697983,\n",
" 'Magazin': 0.48810001462697983,\n",
" 'Leiterprüfung': 0.19040000438690186,\n",
" 'Arbeit': 0.09520000219345093,\n",
" 'Abteilungsleiter': 0.48180001229047775,\n",
" 'Email': 1.6289000436663628,\n",
" 'Eigenverantwortlichkeit': 1.9827000498771667,\n",
" 'Mithilfe': 1.7449000477790833,\n",
" 'Graf': 1.884600043296814,\n",
" 'informieren': 0.5197000131011009,\n",
" 'Pflasterschrank': 0.11500000208616257,\n",
" 'Bedarf': 0.8617000207304955,\n",
" 'Verbandsmaterial': 0.3450000062584877,\n",
" 'Auflistung': 0.23000000417232513,\n",
" 'finden': 0.5750000104308128,\n",
" 'Extradate': 0.3450000062584877,\n",
" 'intern': 0.23000000417232513,\n",
" 'Objekt': 0.23000000417232513,\n",
" 'Wartungsarbeit': 0.4415999948978424,\n",
" 'Einrichtung': 0.2759999930858612,\n",
" 'Luftdruckkontrolle': 0.2759999930858612,\n",
" 'Abschmierung': 0.49140000343322754,\n",
" 'Ventilator': 0.49140000343322754,\n",
" 'Motor': 0.9828000068664551,\n",
" 'durchführen': 0.24570000171661377,\n",
" 'Monat': 0.4219000041484833,\n",
" 'Erledigungsdatum': 0.24570000171661377,\n",
" 'anschreiben': 0.24570000171661377,\n",
" 'Wechseln': 0.504800021648407,\n",
" 'V-Röhre': 0.2524000108242035,\n",
" 'Betriebsstunde': 0.2524000108242035,\n",
" 'Wäscherkontrolle': 0.49140000343322754,\n",
" 'Sitz': 0.15800000727176666,\n",
" 'Verschmutzung': 0.1256999969482422,\n",
" 'Sicherstellung': 0.1256999969482422,\n",
" 'Ausblasöffnung': 0.1256999969482422,\n",
" 'Fremdkörper': 0.1256999969482422,\n",
" 'anfragen': 0.45570001006126404,\n",
" 'Termin': 0.45570001006126404,\n",
" 'Menzel': 0.5950000286102295,\n",
" 'Vorbelegung': 1.5947999954223633,\n",
" 'Stehlagergehäuse': 0.4966000020503998,\n",
" 'M': 0.1177000030875206,\n",
" 'Moser': 0.2371000051498413,\n",
" 'Lagerung': 1.2455999702215195,\n",
" 'Palette': 0.6974999904632568,\n",
" 'Fach': 0.5480999797582626,\n",
" 'Hochregal': 0.5480999797582626,\n",
" 'Halle': 0.5480999797582626,\n",
" 'so': 0.5480999797582626,\n",
" 'zulässig': 0.5480999797582626,\n",
" 'tauschen': 0.22450000047683716,\n",
" 'reinigen': 0.530799999833107,\n",
" 'Rauwalze': 1.255899965763092,\n",
" 'Einziehwalze': 1.2551999688148499,\n",
" 'neu': 2.048299953341484,\n",
" 'überziehen': 0.573199987411499,\n",
" 'erfolgen': 0.11500000208616257,\n",
" 'Absprache': 0.09809999912977219,\n",
" 'Baugruppe': 0.704800009727478,\n",
" 'Pos.-Nr': 0.352400004863739,\n",
" 'Nr.': 0.5286000072956085,\n",
" 'Stückliste': 0.5286000072956085,\n",
" 'E-Nummer': 0.1762000024318695,\n",
" 'Bezeichnung': 0.1762000024318695,\n",
" 'verbauen': 0.352400004863739,\n",
" 'Hersteller': 0.1762000024318695,\n",
" 'Anzahl': 0.1762000024318695,\n",
" 'Schmierstoffmenge': 0.1762000024318695,\n",
" 'max.': 0.1762000024318695,\n",
" 'Wartungsintervall': 0.1762000024318695,\n",
" 'Wechselintervall': 0.1762000024318695,\n",
" 'Rollenkette-zweifach': 0.1762000024318695,\n",
" 'Öl': 0.1762000024318695,\n",
" 'E50': 0.1762000024318695,\n",
" 'Woche': 0.1762000024318695,\n",
" 'Kettbaum': 0.6245999932289124,\n",
" 'Gewind': 0.6347000002861023,\n",
" 'nachschneiden': 0.6347000002861023}"
]
},
"execution_count": 312,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dict(tk_resc.degree(weight='weight'))"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "cafbd812-3292-4610-8fb4-0e230a3e63f4",
"metadata": {},
"outputs": [],
"source": [
"nx.set_node_attributes(tk_resc, dict(tk_resc.degree(weight='weight')), name='weight_degree')"
]
},
{
"cell_type": "code",
"execution_count": 102,
"id": "fac462a9-4fe0-408b-9fea-9bf3b05ac7a2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'weight_degree': 3.1190000474452972}\n",
"{'weight_degree': 4.145399987697601}\n",
"{'weight_degree': 2.0}\n",
"{'weight_degree': 0.8227999806404114}\n",
"{'weight_degree': 1.7093999981880188}\n",
"{'weight_degree': 2.0071999728679657}\n",
"{'weight_degree': 0.7318999767303467}\n",
"{'weight_degree': 6.2471999898552895}\n",
"{'weight_degree': 0.6929000020027161}\n",
"{'weight_degree': 0.5758000016212463}\n"
]
}
],
"source": [
"break_early = True\n",
"n = 10\n",
"\n",
"for idx, node in enumerate(tk_resc.nodes):\n",
" if break_early and idx == n:\n",
" break\n",
" print(tk_resc.nodes[node])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "86699c31-5679-4baa-a52a-d7e97dd77761",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 103,
"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": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#import py4cytoscape as p4c\n",
"p4c.cytoscape_ping()"
]
},
{
"cell_type": "code",
"execution_count": 164,
"id": "2262166f-8fc6-468d-a808-1ff79ac0a70a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['lang_main']"
]
},
"execution_count": 164,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.get_collection_list()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "635ef0b3-0e22-4565-92ba-c1e50ff1c6ac",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"''"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.networks.delete_all_networks()"
]
},
{
"cell_type": "code",
"execution_count": 182,
"id": "2db0ecc6-15aa-49a7-baca-bee8a3faa27e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"''"
]
},
"execution_count": 182,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.networks.delete_network('test3')"
]
},
{
"cell_type": "code",
"execution_count": 207,
"id": "986a01f1-1b98-4d6b-bf4b-83d0ef306425",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 208,
"id": "fcc82b82-1bb5-484f-9d49-75de18ebddd4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"''"
]
},
"execution_count": 208,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.networks.delete_all_networks()"
]
},
{
"cell_type": "code",
"execution_count": 209,
"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": [
"20743"
]
},
"execution_count": 209,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"p4c.create_network_from_networkx(tk_resc, title=BASE_NAME, collection='lang_main')"
]
},
{
"cell_type": "code",
"execution_count": 210,
"id": "a4871473-83b3-44ed-a6b0-45453975cdd6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'networkTitle': 'test (undirected)',\n",
" 'nodeCount': '158',\n",
" 'edgeCount': '189',\n",
" 'avNeighbors': '2.3684210526315788',\n",
" 'diameter': '10',\n",
" 'radius': '5',\n",
" 'avSpl': '3.7965860597439547',\n",
" 'cc': '0.3375',\n",
" 'density': '0.06401137980085347',\n",
" 'heterogeneity': '1.0891156226526975',\n",
" 'centralization': '0.38888888888888895',\n",
" 'ncc': '27',\n",
" 'time': '0.003'}"
]
},
"execution_count": 210,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.tools.analyze_network(directed=False)"
]
},
{
"cell_type": "markdown",
"id": "9c0dc5a0-0686-459b-9e98-50ab8238ecb2",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 282,
"id": "70104956-06d4-461b-ab4d-312d868f6e98",
"metadata": {},
"outputs": [],
"source": [
"BASE_NETWORK_NAME = 'test'\n",
"\n",
"def import_to_cytoscape(graph):\n",
" p4c.networks.delete_all_networks()\n",
" p4c.create_network_from_networkx(graph, title=BASE_NETWORK_NAME, collection='lang_main')\n",
" p4c.tools.analyze_network(directed=False)\n",
"\n",
"\n",
"def reset_current_network_to_base():\n",
" p4c.set_current_network(BASE_NETWORK_NAME)\n",
"\n",
"\n",
"def export_network_to_image(filename, filetype='SVG', network_name=BASE_NETWORK_NAME):\n",
" target_folder = Path.cwd() / 'results'\n",
" if not target_folder.exists():\n",
" target_folder.mkdir(parents=True)\n",
" file_pth = target_folder / filename\n",
"\n",
" text_as_font = True\n",
" if filetype == 'SVG':\n",
" text_as_font = False\n",
"\n",
" p4c.export_image(filename=str(file_pth), type=filetype, network=network_name, overwrite_file=True, all_graphics_details=True, export_text_as_font=text_as_font, page_size='A4')"
]
},
{
"cell_type": "code",
"execution_count": 283,
"id": "2c240f53-0f6c-4de3-adcb-7be4f051ca2a",
"metadata": {},
"outputs": [],
"source": [
"LAYOUT_NAME = 'force-directed'\n",
"LAYOUT_PROPERTIES = {\n",
" 'numIterations': 1000,\n",
" 'defaultSpringCoefficient': 1e-4,\n",
" 'defaultSpringLength': 45,\n",
" 'defaultNodeMass': 11,\n",
" 'isDeterministic': True,\n",
" 'singlePartition': False,\n",
"}\n",
"PATH_STYLESHEET = Path('lang_main.xml')\n",
"STYLESHEET_NAME = 'lang_main'\n",
"\n",
"def layout_network(layout_name=LAYOUT_NAME, layout_properties=LAYOUT_PROPERTIES, network_name=BASE_NETWORK_NAME):\n",
" p4c.set_layout_properties(layout_name, layout_properties)\n",
" p4c.layout_network(layout_name=layout_name, network=network_name)\n",
" p4c.fit_content(selected_only=False, network=network_name)\n",
"\n",
"\n",
"def apply_style_to_network(pth_to_stylesheet=PATH_STYLESHEET, network_name=BASE_NETWORK_NAME):\n",
" styles_avail = p4c.get_visual_style_names()\n",
" if STYLESHEET_NAME not in styles_avail:\n",
" p4c.import_visual_styles(pth_to_stylesheet)\n",
"\n",
" p4c.set_visual_style(STYLESHEET_NAME, network=network_name)\n",
" p4c.fit_content(selected_only=False, network=network_name)"
]
},
{
"cell_type": "code",
"execution_count": 304,
"id": "9759f36d-761f-45fc-a9d2-157aef08c1bf",
"metadata": {},
"outputs": [],
"source": [
"SELECTION_PROPERTY = 'node_selection'\n",
"SELECTION_NUMBER = 5\n",
"ITER_NEIGHBOUR_DEPTH = 2\n",
"\n",
"def get_sub_node_selection(network_name=BASE_NETWORK_NAME):\n",
" node_table = p4c.get_table_columns(network=network_name)\n",
" node_table['stress_norm'] = node_table['Stress'] / node_table['Stress'].max()\n",
" node_table[SELECTION_PROPERTY] = node_table['weight_degree'] * node_table['BetweennessCentrality'] * node_table['stress_norm']\n",
" node_table = node_table.sort_values(by=SELECTION_PROPERTY, ascending=False)\n",
" node_table_choice = node_table.iloc[:SELECTION_NUMBER,:]\n",
"\n",
" return node_table_choice['SUID'].to_list()\n",
"\n",
"\n",
"def select_neighbours_of_node(node, network_name=BASE_NETWORK_NAME):\n",
" p4c.clear_selection(network=network_name)\n",
" p4c.select_nodes(node, network=network_name)\n",
"\n",
" for _ in range(ITER_NEIGHBOUR_DEPTH):\n",
" _ = p4c.select_first_neighbors(network=network_name)\n",
"\n",
" _ = p4c.select_edges_connecting_selected_nodes()\n",
"\n",
"\n",
"def make_subnetwork(index, network_name=BASE_NETWORK_NAME, export_image=True):\n",
" subnetwork_name = network_name + f'_sub_{index+1}'\n",
" p4c.create_subnetwork(nodes='selected', edges='selected', subnetwork_name=subnetwork_name, network=network_name)\n",
" p4c.set_current_network(subnetwork_name)\n",
" p4c.fit_content(selected_only=False, network=network_name)\n",
" if export_image:\n",
" export_network_to_image(filename=subnetwork_name, network_name=subnetwork_name)\n",
"\n",
"\n",
"def build_subnetworks(nodes_to_analyse, network_name=BASE_NETWORK_NAME, export_image=True):\n",
" for idx, node in enumerate(nodes_to_analyse):\n",
" select_neighbours_of_node(node=node, network_name=network_name)\n",
" make_subnetwork(index=idx, network_name=network_name, export_image=export_image)"
]
},
{
"cell_type": "markdown",
"id": "facae316-6acb-4094-9eef-19bead44a813",
"metadata": {},
"source": [
"---\n",
"\n",
"1. import network\n",
"2. layouting\n",
"3. apply styles\n",
"4. export image\n",
"5. build subgraphs\n",
" 1. get candidates\n",
" 2. build subnetwork\n",
" 3. export subnetwork"
]
},
{
"cell_type": "code",
"execution_count": 305,
"id": "583d304d-571f-43f5-b8eb-905a01ddaec4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Applying default style...\n",
"Applying preferred layout\n"
]
}
],
"source": [
"import_to_cytoscape(tk_resc)"
]
},
{
"cell_type": "code",
"execution_count": 306,
"id": "b13f2eb2-fa1e-495c-8e77-e992f78a69b6",
"metadata": {},
"outputs": [],
"source": [
"layout_network()"
]
},
{
"cell_type": "code",
"execution_count": 307,
"id": "60c1ca0f-ac73-4545-bffa-7eb656ade8fa",
"metadata": {},
"outputs": [],
"source": [
"apply_style_to_network()"
]
},
{
"cell_type": "code",
"execution_count": 308,
"id": "8cc5f1c0-0bb4-4e77-ba70-83ef449f37c8",
"metadata": {},
"outputs": [],
"source": [
"export_network_to_image(filename=BASE_NETWORK_NAME)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "040c4439-3c46-4d48-92ed-af9614f90cb0",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 309,
"id": "da0f7a3f-c7e5-4c50-85d9-16a90ff69011",
"metadata": {},
"outputs": [],
"source": [
"nodes_to_analyse = get_sub_node_selection()"
]
},
{
"cell_type": "code",
"execution_count": 310,
"id": "27a9cbc3-d852-4f5d-a6ee-92f97cf10db1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"No nodes selected.\n",
"No nodes selected.\n",
"No nodes selected.\n",
"No nodes selected.\n"
]
}
],
"source": [
"build_subnetworks(nodes_to_analyse=nodes_to_analyse, export_image=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "74749a78-1afb-4158-8ab4-05b18b59e39e",
"metadata": {},
"outputs": [],
"source": [
"test = dict()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "9ec4f934-8ea5-401f-9f2f-86de478cec01",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"jo\n"
]
}
],
"source": [
"if not test:\n",
" print('jo')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "97905d05-483c-4e9a-b88d-00353ada870b",
"metadata": {},
"outputs": [],
"source": [
"from lang_main.render.cytoscape import layout_network"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "900868b3-7e3a-44c7-bef4-53c5a3e63e63",
"metadata": {},
"outputs": [],
"source": [
"layout_network()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d3369d18-0e29-4dc3-a7ba-bab8b356282f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 296,
"id": "1dbbf2a3-6de3-4557-8966-40f12c55d755",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"41497"
]
},
"execution_count": 296,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"IDX = 0\n",
"nodes_to_select[IDX]"
]
},
{
"cell_type": "code",
"execution_count": 297,
"id": "3b3eebe1-90e8-429d-8099-96f6e59f7e18",
"metadata": {},
"outputs": [],
"source": [
"select_neighbours_of_node(nodes_to_select[IDX])"
]
},
{
"cell_type": "code",
"execution_count": 300,
"id": "c1b46f42-5837-4a77-9d7c-5780bd5057be",
"metadata": {},
"outputs": [],
"source": [
"build_subnetwork(IDX)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0558b387-e1c4-43b8-aa3c-4d3a182856f4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "3f215f7a-2cec-4ea8-8fc7-6b217fb3df7f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "de481ea5-db5d-46ba-9eed-e7da476d895f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "261bf119-4757-4840-a0b9-0d3d4fb77dd9",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "8b5dfc7f-44fd-4f7b-a8a8-0cd3c73449b4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 190,
"id": "2ce067f3-9647-489d-934e-fcdf1a2561f1",
"metadata": {},
"outputs": [],
"source": [
"node_table = p4c.get_table_columns(network=BASE_NAME)"
]
},
{
"cell_type": "code",
"execution_count": 191,
"id": "f4490242-0aac-46af-a913-08a627815587",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"pandas.core.frame.DataFrame"
]
},
"execution_count": 191,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(node_table)"
]
},
{
"cell_type": "code",
"execution_count": 192,
"id": "9bf840a7-e533-42e2-936a-2678f6bfc4ca",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SUID | \n",
" shared name | \n",
" name | \n",
" selected | \n",
" id | \n",
" weight_degree | \n",
" AverageShortestPathLength | \n",
" ClusteringCoefficient | \n",
" ClosenessCentrality | \n",
" IsSingleNode | \n",
" ... | \n",
" SelfLoops | \n",
" Eccentricity | \n",
" Stress | \n",
" Degree | \n",
" BetweennessCentrality | \n",
" NeighborhoodConnectivity | \n",
" NumberOfDirectedEdges | \n",
" NumberOfUndirectedEdges | \n",
" Radiality | \n",
" TopologicalCoefficient | \n",
"
\n",
" \n",
" \n",
" \n",
" | 18610 | \n",
" 18610 | \n",
" Kontrolle | \n",
" Kontrolle | \n",
" False | \n",
" Kontrolle | \n",
" 6.2472 | \n",
" 2.270270 | \n",
" 0.025000 | \n",
" 0.440476 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 5 | \n",
" 1062 | \n",
" 16 | \n",
" 0.797297 | \n",
" 1.812500 | \n",
" 0 | \n",
" 16 | \n",
" 0.920608 | \n",
" 0.091346 | \n",
"
\n",
" \n",
" | 18778 | \n",
" 18778 | \n",
" Herr | \n",
" Herr | \n",
" False | \n",
" Herr | \n",
" 5.4802 | \n",
" 3.114286 | \n",
" 0.294872 | \n",
" 0.321101 | \n",
" False | \n",
" ... | \n",
" 1 | \n",
" 6 | \n",
" 962 | \n",
" 15 | \n",
" 0.402857 | \n",
" 4.692308 | \n",
" 0 | \n",
" 14 | \n",
" 0.837363 | \n",
" 0.329670 | \n",
"
\n",
" \n",
" | 18799 | \n",
" 18799 | \n",
" Firma | \n",
" Firma | \n",
" False | \n",
" Firma | \n",
" 3.6372 | \n",
" 3.571429 | \n",
" 0.127273 | \n",
" 0.280000 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 7 | \n",
" 1328 | \n",
" 11 | \n",
" 0.401681 | \n",
" 2.818182 | \n",
" 0 | \n",
" 11 | \n",
" 0.802198 | \n",
" 0.223140 | \n",
"
\n",
" \n",
" | 18694 | \n",
" 18694 | \n",
" sehen | \n",
" sehen | \n",
" False | \n",
" sehen | \n",
" 3.6508 | \n",
" 3.114286 | \n",
" 0.333333 | \n",
" 0.321101 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 6 | \n",
" 1034 | \n",
" 7 | \n",
" 0.281793 | \n",
" 4.571429 | \n",
" 0 | \n",
" 7 | \n",
" 0.837363 | \n",
" 0.268908 | \n",
"
\n",
" \n",
" | 18712 | \n",
" 18712 | \n",
" schmieren | \n",
" schmieren | \n",
" False | \n",
" schmieren | \n",
" 1.4378 | \n",
" 2.621622 | \n",
" 0.066667 | \n",
" 0.381443 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 6 | \n",
" 626 | \n",
" 6 | \n",
" 0.469970 | \n",
" 4.333333 | \n",
" 0 | \n",
" 6 | \n",
" 0.898649 | \n",
" 0.183333 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 19048 | \n",
" 19048 | \n",
" E50 | \n",
" E50 | \n",
" False | \n",
" E50 | \n",
" 0.1762 | \n",
" 4.243243 | \n",
" 0.000000 | \n",
" 0.235669 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 8 | \n",
" 0 | \n",
" 1 | \n",
" 0.000000 | \n",
" 4.000000 | \n",
" 0 | \n",
" 1 | \n",
" 0.797297 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 19045 | \n",
" 19045 | \n",
" Öl | \n",
" Öl | \n",
" False | \n",
" Öl | \n",
" 0.1762 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 0 | \n",
" 1 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 19042 | \n",
" 19042 | \n",
" Rollenkette-zweifach | \n",
" Rollenkette-zweifach | \n",
" False | \n",
" Rollenkette-zweifach | \n",
" 0.1762 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 0 | \n",
" 1 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 19039 | \n",
" 19039 | \n",
" Wechselintervall | \n",
" Wechselintervall | \n",
" False | \n",
" Wechselintervall | \n",
" 0.1762 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 0 | \n",
" 1 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" | 18943 | \n",
" 18943 | \n",
" Menzel | \n",
" Menzel | \n",
" False | \n",
" Menzel | \n",
" 0.5950 | \n",
" 4.542857 | \n",
" 0.000000 | \n",
" 0.220126 | \n",
" False | \n",
" ... | \n",
" 0 | \n",
" 8 | \n",
" 0 | \n",
" 1 | \n",
" 0.000000 | \n",
" 11.000000 | \n",
" 0 | \n",
" 1 | \n",
" 0.727473 | \n",
" 0.000000 | \n",
"
\n",
" \n",
"
\n",
"
158 rows × 21 columns
\n",
"
"
],
"text/plain": [
" SUID shared name name selected \\\n",
"18610 18610 Kontrolle Kontrolle False \n",
"18778 18778 Herr Herr False \n",
"18799 18799 Firma Firma False \n",
"18694 18694 sehen sehen False \n",
"18712 18712 schmieren schmieren False \n",
"... ... ... ... ... \n",
"19048 19048 E50 E50 False \n",
"19045 19045 Öl Öl False \n",
"19042 19042 Rollenkette-zweifach Rollenkette-zweifach False \n",
"19039 19039 Wechselintervall Wechselintervall False \n",
"18943 18943 Menzel Menzel False \n",
"\n",
" id weight_degree AverageShortestPathLength \\\n",
"18610 Kontrolle 6.2472 2.270270 \n",
"18778 Herr 5.4802 3.114286 \n",
"18799 Firma 3.6372 3.571429 \n",
"18694 sehen 3.6508 3.114286 \n",
"18712 schmieren 1.4378 2.621622 \n",
"... ... ... ... \n",
"19048 E50 0.1762 4.243243 \n",
"19045 Öl 0.1762 1.000000 \n",
"19042 Rollenkette-zweifach 0.1762 1.000000 \n",
"19039 Wechselintervall 0.1762 1.000000 \n",
"18943 Menzel 0.5950 4.542857 \n",
"\n",
" ClusteringCoefficient ClosenessCentrality IsSingleNode ... \\\n",
"18610 0.025000 0.440476 False ... \n",
"18778 0.294872 0.321101 False ... \n",
"18799 0.127273 0.280000 False ... \n",
"18694 0.333333 0.321101 False ... \n",
"18712 0.066667 0.381443 False ... \n",
"... ... ... ... ... \n",
"19048 0.000000 0.235669 False ... \n",
"19045 0.000000 1.000000 False ... \n",
"19042 0.000000 1.000000 False ... \n",
"19039 0.000000 1.000000 False ... \n",
"18943 0.000000 0.220126 False ... \n",
"\n",
" SelfLoops Eccentricity Stress Degree BetweennessCentrality \\\n",
"18610 0 5 1062 16 0.797297 \n",
"18778 1 6 962 15 0.402857 \n",
"18799 0 7 1328 11 0.401681 \n",
"18694 0 6 1034 7 0.281793 \n",
"18712 0 6 626 6 0.469970 \n",
"... ... ... ... ... ... \n",
"19048 0 8 0 1 0.000000 \n",
"19045 0 1 0 1 0.000000 \n",
"19042 0 1 0 1 0.000000 \n",
"19039 0 1 0 1 0.000000 \n",
"18943 0 8 0 1 0.000000 \n",
"\n",
" NeighborhoodConnectivity NumberOfDirectedEdges \\\n",
"18610 1.812500 0 \n",
"18778 4.692308 0 \n",
"18799 2.818182 0 \n",
"18694 4.571429 0 \n",
"18712 4.333333 0 \n",
"... ... ... \n",
"19048 4.000000 0 \n",
"19045 1.000000 0 \n",
"19042 1.000000 0 \n",
"19039 1.000000 0 \n",
"18943 11.000000 0 \n",
"\n",
" NumberOfUndirectedEdges Radiality TopologicalCoefficient \n",
"18610 16 0.920608 0.091346 \n",
"18778 14 0.837363 0.329670 \n",
"18799 11 0.802198 0.223140 \n",
"18694 7 0.837363 0.268908 \n",
"18712 6 0.898649 0.183333 \n",
"... ... ... ... \n",
"19048 1 0.797297 0.000000 \n",
"19045 1 1.000000 0.000000 \n",
"19042 1 1.000000 0.000000 \n",
"19039 1 1.000000 0.000000 \n",
"18943 1 0.727473 0.000000 \n",
"\n",
"[158 rows x 21 columns]"
]
},
"execution_count": 192,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"node_table.sort_values(by='Degree', ascending=False)"
]
},
{
"cell_type": "markdown",
"id": "b4ebe14c-2b23-4da2-8be6-2223add935af",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 193,
"id": "7386bd66-1924-4199-84d2-a6d1a66def40",
"metadata": {},
"outputs": [],
"source": [
"node_table['stress_norm'] = node_table['Stress'] / node_table['Stress'].max()"
]
},
{
"cell_type": "code",
"execution_count": 194,
"id": "9422c085-e30e-4418-8c74-26d89edf0ad4",
"metadata": {},
"outputs": [],
"source": [
"node_table['w_deg with betweenness'] = node_table['weight_degree'] * node_table['BetweennessCentrality'] * node_table['stress_norm']"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e9795c94-cb76-452e-9eda-2285d050fd1b",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 195,
"id": "a2fb09ff-bf2e-48d1-9ceb-777efe0b0b40",
"metadata": {},
"outputs": [],
"source": [
"node_table_sorted = node_table.sort_values(by='w_deg with betweenness', ascending=False)"
]
},
{
"cell_type": "code",
"execution_count": 196,
"id": "6ae4b7b9-75db-4b80-bd46-53ea25b06829",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SUID | \n",
" shared name | \n",
" name | \n",
" selected | \n",
" id | \n",
" weight_degree | \n",
" AverageShortestPathLength | \n",
" ClusteringCoefficient | \n",
" ClosenessCentrality | \n",
" IsSingleNode | \n",
" ... | \n",
" Stress | \n",
" Degree | \n",
" BetweennessCentrality | \n",
" NeighborhoodConnectivity | \n",
" NumberOfDirectedEdges | \n",
" NumberOfUndirectedEdges | \n",
" Radiality | \n",
" TopologicalCoefficient | \n",
" stress_norm | \n",
" w_deg with betweenness | \n",
"
\n",
" \n",
" \n",
" \n",
" | 18610 | \n",
" 18610 | \n",
" Kontrolle | \n",
" Kontrolle | \n",
" False | \n",
" Kontrolle | \n",
" 6.2472 | \n",
" 2.270270 | \n",
" 0.025000 | \n",
" 0.440476 | \n",
" False | \n",
" ... | \n",
" 1062 | \n",
" 16 | \n",
" 0.797297 | \n",
" 1.812500 | \n",
" 0 | \n",
" 16 | \n",
" 0.920608 | \n",
" 0.091346 | \n",
" 0.604096 | \n",
" 3.008925 | \n",
"
\n",
" \n",
" | 18585 | \n",
" 18585 | \n",
" Wartungstätigkeit | \n",
" Wartungstätigkeit | \n",
" False | \n",
" Wartungstätigkeit | \n",
" 3.1190 | \n",
" 2.714286 | \n",
" 0.133333 | \n",
" 0.368421 | \n",
" False | \n",
" ... | \n",
" 1758 | \n",
" 6 | \n",
" 0.571429 | \n",
" 3.000000 | \n",
" 0 | \n",
" 6 | \n",
" 0.868132 | \n",
" 0.242424 | \n",
" 1.000000 | \n",
" 1.782286 | \n",
"
\n",
" \n",
" | 18778 | \n",
" 18778 | \n",
" Herr | \n",
" Herr | \n",
" False | \n",
" Herr | \n",
" 5.4802 | \n",
" 3.114286 | \n",
" 0.294872 | \n",
" 0.321101 | \n",
" False | \n",
" ... | \n",
" 962 | \n",
" 15 | \n",
" 0.402857 | \n",
" 4.692308 | \n",
" 0 | \n",
" 14 | \n",
" 0.837363 | \n",
" 0.329670 | \n",
" 0.547213 | \n",
" 1.208102 | \n",
"
\n",
" \n",
" | 18799 | \n",
" 18799 | \n",
" Firma | \n",
" Firma | \n",
" False | \n",
" Firma | \n",
" 3.6372 | \n",
" 3.571429 | \n",
" 0.127273 | \n",
" 0.280000 | \n",
" False | \n",
" ... | \n",
" 1328 | \n",
" 11 | \n",
" 0.401681 | \n",
" 2.818182 | \n",
" 0 | \n",
" 11 | \n",
" 0.802198 | \n",
" 0.223140 | \n",
" 0.755404 | \n",
" 1.103640 | \n",
"
\n",
" \n",
" | 18592 | \n",
" 18592 | \n",
" Vorgabe | \n",
" Vorgabe | \n",
" False | \n",
" Vorgabe | \n",
" 4.1454 | \n",
" 2.885714 | \n",
" 0.400000 | \n",
" 0.346535 | \n",
" False | \n",
" ... | \n",
" 1106 | \n",
" 5 | \n",
" 0.315406 | \n",
" 4.600000 | \n",
" 0 | \n",
" 5 | \n",
" 0.854945 | \n",
" 0.383333 | \n",
" 0.629124 | \n",
" 0.822570 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 23 columns
\n",
"
"
],
"text/plain": [
" SUID shared name name selected \\\n",
"18610 18610 Kontrolle Kontrolle False \n",
"18585 18585 Wartungstätigkeit Wartungstätigkeit False \n",
"18778 18778 Herr Herr False \n",
"18799 18799 Firma Firma False \n",
"18592 18592 Vorgabe Vorgabe False \n",
"\n",
" id weight_degree AverageShortestPathLength \\\n",
"18610 Kontrolle 6.2472 2.270270 \n",
"18585 Wartungstätigkeit 3.1190 2.714286 \n",
"18778 Herr 5.4802 3.114286 \n",
"18799 Firma 3.6372 3.571429 \n",
"18592 Vorgabe 4.1454 2.885714 \n",
"\n",
" ClusteringCoefficient ClosenessCentrality IsSingleNode ... Stress \\\n",
"18610 0.025000 0.440476 False ... 1062 \n",
"18585 0.133333 0.368421 False ... 1758 \n",
"18778 0.294872 0.321101 False ... 962 \n",
"18799 0.127273 0.280000 False ... 1328 \n",
"18592 0.400000 0.346535 False ... 1106 \n",
"\n",
" Degree BetweennessCentrality NeighborhoodConnectivity \\\n",
"18610 16 0.797297 1.812500 \n",
"18585 6 0.571429 3.000000 \n",
"18778 15 0.402857 4.692308 \n",
"18799 11 0.401681 2.818182 \n",
"18592 5 0.315406 4.600000 \n",
"\n",
" NumberOfDirectedEdges NumberOfUndirectedEdges Radiality \\\n",
"18610 0 16 0.920608 \n",
"18585 0 6 0.868132 \n",
"18778 0 14 0.837363 \n",
"18799 0 11 0.802198 \n",
"18592 0 5 0.854945 \n",
"\n",
" TopologicalCoefficient stress_norm w_deg with betweenness \n",
"18610 0.091346 0.604096 3.008925 \n",
"18585 0.242424 1.000000 1.782286 \n",
"18778 0.329670 0.547213 1.208102 \n",
"18799 0.223140 0.755404 1.103640 \n",
"18592 0.383333 0.629124 0.822570 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 196,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"node_table_sorted.head()"
]
},
{
"cell_type": "code",
"execution_count": 197,
"id": "a5f22fd0-e002-43ec-8dc3-99eb52f8bcd2",
"metadata": {},
"outputs": [],
"source": [
"node_table_choice = node_table_sorted.iloc[:5,:]"
]
},
{
"cell_type": "code",
"execution_count": 198,
"id": "c123cdd7-f000-4a60-9dc2-73b8a4410e31",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SUID | \n",
" shared name | \n",
" name | \n",
" selected | \n",
" id | \n",
" weight_degree | \n",
" AverageShortestPathLength | \n",
" ClusteringCoefficient | \n",
" ClosenessCentrality | \n",
" IsSingleNode | \n",
" ... | \n",
" Stress | \n",
" Degree | \n",
" BetweennessCentrality | \n",
" NeighborhoodConnectivity | \n",
" NumberOfDirectedEdges | \n",
" NumberOfUndirectedEdges | \n",
" Radiality | \n",
" TopologicalCoefficient | \n",
" stress_norm | \n",
" w_deg with betweenness | \n",
"
\n",
" \n",
" \n",
" \n",
" | 18610 | \n",
" 18610 | \n",
" Kontrolle | \n",
" Kontrolle | \n",
" False | \n",
" Kontrolle | \n",
" 6.2472 | \n",
" 2.270270 | \n",
" 0.025000 | \n",
" 0.440476 | \n",
" False | \n",
" ... | \n",
" 1062 | \n",
" 16 | \n",
" 0.797297 | \n",
" 1.812500 | \n",
" 0 | \n",
" 16 | \n",
" 0.920608 | \n",
" 0.091346 | \n",
" 0.604096 | \n",
" 3.008925 | \n",
"
\n",
" \n",
" | 18585 | \n",
" 18585 | \n",
" Wartungstätigkeit | \n",
" Wartungstätigkeit | \n",
" False | \n",
" Wartungstätigkeit | \n",
" 3.1190 | \n",
" 2.714286 | \n",
" 0.133333 | \n",
" 0.368421 | \n",
" False | \n",
" ... | \n",
" 1758 | \n",
" 6 | \n",
" 0.571429 | \n",
" 3.000000 | \n",
" 0 | \n",
" 6 | \n",
" 0.868132 | \n",
" 0.242424 | \n",
" 1.000000 | \n",
" 1.782286 | \n",
"
\n",
" \n",
" | 18778 | \n",
" 18778 | \n",
" Herr | \n",
" Herr | \n",
" False | \n",
" Herr | \n",
" 5.4802 | \n",
" 3.114286 | \n",
" 0.294872 | \n",
" 0.321101 | \n",
" False | \n",
" ... | \n",
" 962 | \n",
" 15 | \n",
" 0.402857 | \n",
" 4.692308 | \n",
" 0 | \n",
" 14 | \n",
" 0.837363 | \n",
" 0.329670 | \n",
" 0.547213 | \n",
" 1.208102 | \n",
"
\n",
" \n",
" | 18799 | \n",
" 18799 | \n",
" Firma | \n",
" Firma | \n",
" False | \n",
" Firma | \n",
" 3.6372 | \n",
" 3.571429 | \n",
" 0.127273 | \n",
" 0.280000 | \n",
" False | \n",
" ... | \n",
" 1328 | \n",
" 11 | \n",
" 0.401681 | \n",
" 2.818182 | \n",
" 0 | \n",
" 11 | \n",
" 0.802198 | \n",
" 0.223140 | \n",
" 0.755404 | \n",
" 1.103640 | \n",
"
\n",
" \n",
" | 18592 | \n",
" 18592 | \n",
" Vorgabe | \n",
" Vorgabe | \n",
" False | \n",
" Vorgabe | \n",
" 4.1454 | \n",
" 2.885714 | \n",
" 0.400000 | \n",
" 0.346535 | \n",
" False | \n",
" ... | \n",
" 1106 | \n",
" 5 | \n",
" 0.315406 | \n",
" 4.600000 | \n",
" 0 | \n",
" 5 | \n",
" 0.854945 | \n",
" 0.383333 | \n",
" 0.629124 | \n",
" 0.822570 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 23 columns
\n",
"
"
],
"text/plain": [
" SUID shared name name selected \\\n",
"18610 18610 Kontrolle Kontrolle False \n",
"18585 18585 Wartungstätigkeit Wartungstätigkeit False \n",
"18778 18778 Herr Herr False \n",
"18799 18799 Firma Firma False \n",
"18592 18592 Vorgabe Vorgabe False \n",
"\n",
" id weight_degree AverageShortestPathLength \\\n",
"18610 Kontrolle 6.2472 2.270270 \n",
"18585 Wartungstätigkeit 3.1190 2.714286 \n",
"18778 Herr 5.4802 3.114286 \n",
"18799 Firma 3.6372 3.571429 \n",
"18592 Vorgabe 4.1454 2.885714 \n",
"\n",
" ClusteringCoefficient ClosenessCentrality IsSingleNode ... Stress \\\n",
"18610 0.025000 0.440476 False ... 1062 \n",
"18585 0.133333 0.368421 False ... 1758 \n",
"18778 0.294872 0.321101 False ... 962 \n",
"18799 0.127273 0.280000 False ... 1328 \n",
"18592 0.400000 0.346535 False ... 1106 \n",
"\n",
" Degree BetweennessCentrality NeighborhoodConnectivity \\\n",
"18610 16 0.797297 1.812500 \n",
"18585 6 0.571429 3.000000 \n",
"18778 15 0.402857 4.692308 \n",
"18799 11 0.401681 2.818182 \n",
"18592 5 0.315406 4.600000 \n",
"\n",
" NumberOfDirectedEdges NumberOfUndirectedEdges Radiality \\\n",
"18610 0 16 0.920608 \n",
"18585 0 6 0.868132 \n",
"18778 0 14 0.837363 \n",
"18799 0 11 0.802198 \n",
"18592 0 5 0.854945 \n",
"\n",
" TopologicalCoefficient stress_norm w_deg with betweenness \n",
"18610 0.091346 0.604096 3.008925 \n",
"18585 0.242424 1.000000 1.782286 \n",
"18778 0.329670 0.547213 1.208102 \n",
"18799 0.223140 0.755404 1.103640 \n",
"18592 0.383333 0.629124 0.822570 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 198,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"node_table_choice"
]
},
{
"cell_type": "code",
"execution_count": 199,
"id": "6f68b890-6c80-4750-a35c-ee29b594462d",
"metadata": {},
"outputs": [],
"source": [
"nodes_to_select = node_table_choice['SUID'].to_list()"
]
},
{
"cell_type": "code",
"execution_count": 200,
"id": "6d94b18f-2590-4d1b-b165-300466bfd1b1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"''"
]
},
"execution_count": 200,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.clear_selection()"
]
},
{
"cell_type": "code",
"execution_count": 239,
"id": "62cf521b-e709-4086-9f3d-3e3f8dd9faaa",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{}"
]
},
"execution_count": 239,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.select_nodes(nodes_to_select[0])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fdeeccd4-3e7c-4c76-a024-f45540142c4a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 202,
"id": "a371ce7a-d9b9-4158-a0cb-797834a16f97",
"metadata": {},
"outputs": [],
"source": [
"iter_depth = 2\n",
"\n",
"for _ in range(iter_depth):\n",
" _ = p4c.select_first_neighbors()"
]
},
{
"cell_type": "code",
"execution_count": 203,
"id": "cce979e2-65f1-4896-8758-659ff21c315b",
"metadata": {},
"outputs": [],
"source": [
"_ = p4c.select_edges_connecting_selected_nodes()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "23157e10-02c6-4adb-8a36-4bdbfe5f9f4b",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 206,
"id": "2038fd62-b75f-4ba1-b258-53789b4665b7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"20402"
]
},
"execution_count": 206,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.create_subnetwork(nodes='selected', edges='selected', subnetwork_name='test_sub_1')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "12828271-fea9-4e4a-98c3-87860992a6db",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "f367b253-2172-4dce-9379-a3ed95f3368e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "49ad6a55-2a12-44c4-a193-2fbb3da84bcf",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 205,
"id": "7de95550-c077-467f-a962-5e84ddf430c7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{}"
]
},
"execution_count": 205,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.fit_content(selected_only=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b73934d1-f16a-4ef9-8969-b1be8e7310f5",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "783cb7d6-c6b1-4a9b-8019-02ce2628dde9",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 314,
"id": "697647da-3b8b-4029-bec9-af2e2bb6984a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['attribute-circle',\n",
" 'attribute-grid',\n",
" 'attributes-layout',\n",
" 'circular',\n",
" 'cose',\n",
" 'degree-circle',\n",
" 'force-directed',\n",
" 'force-directed-cl',\n",
" 'fruchterman-rheingold',\n",
" 'grid',\n",
" 'hierarchical',\n",
" 'isom',\n",
" 'kamada-kawai',\n",
" 'stacked-node-layout']"
]
},
"execution_count": 314,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted(list(p4c.get_layout_name_mapping().values()))"
]
},
{
"cell_type": "code",
"execution_count": 186,
"id": "fa15c057-d453-4c7e-8af2-18220ea90651",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['numIterations',\n",
" 'defaultSpringCoefficient',\n",
" 'defaultSpringLength',\n",
" 'defaultNodeMass',\n",
" 'isDeterministic',\n",
" 'singlePartition']"
]
},
"execution_count": 186,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.get_layout_property_names('force-directed')"
]
},
{
"cell_type": "code",
"execution_count": 259,
"id": "6f48d9cc-f527-4b33-9477-60636a480371",
"metadata": {},
"outputs": [],
"source": [
"LAYOUT_NAME = 'force-directed'\n",
"LAYOUT_PROPERTIES = {\n",
" 'numIterations': 1000,\n",
" 'defaultSpringCoefficient': 1e-4,\n",
" 'defaultSpringLength': 45,\n",
" 'defaultNodeMass': 11,\n",
" 'isDeterministic': True,\n",
" 'singlePartition': False,\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 188,
"id": "d542b2ea-11d5-4802-b1b9-65e5e12f6d38",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"''"
]
},
"execution_count": 188,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.set_layout_properties('force-directed', layout_props)\n",
"#p4c.get_layout_property_type('kamada-kawai', 'randomize')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8eb62660-27a6-43a0-be19-4c4479eac8d7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 189,
"id": "c1069996-b638-4bfa-8ad4-f750a33022d6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{}"
]
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.layout_network(layout_name='force-directed', network='test3')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c7f5c1e6-8e32-4e90-b531-38611fef85ce",
"metadata": {},
"outputs": [],
"source": [
"p4c.fit_content(selected_only=False)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "8802c969-c3f4-433a-8cab-c6704fa03039",
"metadata": {},
"outputs": [],
"source": [
"# visual style gets always imported with increasing index,\n",
"# later check if style in Cytoscape is already available\n",
"styles_avail = p4c.get_visual_style_names()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "1b6023ef-b4a2-4cf3-92ef-01419fc5258a",
"metadata": {},
"outputs": [],
"source": [
"if 'lang_main' not in styles_avail:\n",
" p4c.import_visual_styles('lang_main.xml')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "3e27695b-5b26-4176-9bc9-adb91d848025",
"metadata": {},
"outputs": [],
"source": [
"assert 'lang_main' in p4c.get_visual_style_names()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4083b72d-f321-4489-be19-6167f13ab226",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 37,
"id": "59234fed-cc38-4ee3-9ef8-9180e7785ea5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'message': 'Visual Style applied.'}"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.set_visual_style('lang_main')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2653d1af-b3a5-4da7-9066-0940cb913dab",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "fd5fd222-75fd-4523-8401-a4a37c6010fd",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 79,
"id": "d972ff5a-e695-43b6-b8c5-ab295fd5de3d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABBcAAAHoCAYAAAASQAdaAACAAElEQVR4Xuzd+VNjWZYn+P53ammrmenpsun5oarHqqfNembMuju7y9q6pm2mrdbMya7MrM6tsjIyKjIyY/GI8Ihwj/A93ME3cMBxnH1fxSqxCARIQiuSEAIh9sVZz+h7CeHiPQECSSDE94ePAfc9iU3Lu+eee84/2RARIiIiIiIiIqKz+ifaASIiIiIiIiKi02BwgYiIiIiIiIhSwuACEREREREREaWEwQUiIiIiIiIiSgmDC0RERERERESUEgYXiIiIiIiIiCglDC4QERERERERUUoYXCAiIiIiIiKilDC4QEREREREREQpYXCBiIiIiIiIiFLC4AIRERERERERpYTBBSIiIiIiIiJKCYMLRERERERERJQSBheIiIiIiIiIKCUMLhARERERERFRShhcICIiIiIiIqKUMLhARERERERERClhcIGIiIiIiIiIUsLgAhERERERERGlhMEFIiIiIiIiIkoJgwtERERERERElBIGF4iIiIiIiIgoJQwuEBEREREREVFKGFwgIiIiIiIiopQwuEBEREREREREKWFwgYiIiIiIiIhSwuACEREREREREaWEwYWo5b0NmduJyLrs6Y4RERERXQaLuyuysLuoGyeiw1b23nx77b+rO0aXD1738PqnHc91a3tb6nG8uretO3ZRrnxwYWlvTbyOWxJu+654Voy640RERETZbnZnRgKD/yih3p9IcNunO05E+xBYcHseylzLX4l7yaA7TpcLXu/wuofXP7wOao/nqjXZEWfwpcw1/4U4ZyuzZpH8ygcXZrdDsljzn2Xv3u+I25unO05ERESU7SY3J2Tryf8iuw9+X1yr/brjRLQPK72YkOHa32u/qTtOl8Pa7p4MTARkZKZTve7h9Q+vg9rzctXS7pqEen+qHsdTA+/Kyt6m7pyLcOWDC0gjsc7UqReX4LZfd5yIiIgo23nnQzLhKxT3ZL5EdhZ0x+ky2lMT4cXd1QTH6KzGfCEZDTWL1/qFBDZduuOU3cJrG/K81iQPXnWKYdgtM5sRcXry1evfVdoaMTY5I+ZQp3jHr4tv3aI7flGufHAB7pXup0St7+7K0sbGkZY3syMiRERERBTv3kuDzL/ZUp+vbm/rrmFi1veyI3WWDlvc3BbHdEStxA45pxTXyqjM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dNy7Li03PpP6d14Tb2eDjDY+sLyXiIiIiIiIyIkYXCiw+dVVmV9elvmVFSm/ck2ik2H1eunFC8t7iYiIiIiIiJyIwYUietrjlS5PxLKciIiIiIiIyMkYXCii5Y1NOXO7ybKciIiIiIiIyMkYXCiyzyoYXCAiIiIiIqKDhcGFIrte3SXRpVXLciIiIiIiIiKnYnChyJ50emQkErMsJyIiIiIiInIqBheKrHkwKD3ecctyIiIiIiIiIqdicKHIOt1haXOFLMuJiIiIiIiInIrBhSLjsAgiIiIiIiI6aBhcKLKyJz1M6EhEREREREQHCoMLRYapKFe3rMuJiIiIiIiInIrBhSJa2dySM7ebLMuJiIiIiIiInIzBhSLCLBF1PV7LciIiIiIiIiInY3ChiE7erJfF9Q3LciIiIiIiIiInY3ChSFzhmFQ2DlqWExERERERETkdgwsFFtuIid9/WtyRMpldX7KsJyIiIiIiInI6BhcKzDdXK1unviLPrv22RNb8lvVERERERERETsfgQoGFX3hlqvF1CfW/LTMbcct6IiIiIiIiIqdjcKEI4huzsrC5IqtbW7KysbEvvE//DiIiIiIiIiK7YnChiKKzszIZje4L79M/S0RERERERGRXDC4Ukafhvox21Il/oF1CXpd4mh7JaEuN9N46LeGgV3zdzTLS8EAmwgHLZ4mIiIiIiIjsisGFIhp5ele6rnwkrcd/ZLyulM4Lh6X7xnEZqLosI3X3pPP8Yem5fkxGmx9ZPktERERERERkVwwuFBHyKSy9eCFLa2vbkl8nwfv0zxIRERERERHZFYMLRERERERERJQTBheIiIiIiIiIKCcMLhARERERERFRThhcICIiIiIiIqKcMLhARERERERERDlhcIGIiIiIiIiIcsLgAhERERERERHlhMEFIiIiIiIiIsoJgwtERERERERElBMGF4iIiIiIiIgoJwwuEBEREREREVFOGFwgIiIiIiIiopwwuEBEREREREREOWFwgYiIiIiIiIhywuACEREREREREeWEwQUiIiIiIiIiygmDC0RERERERESUEwYXiIiIiIiIiCgnDC4QERERERERUU4YXCAiIiIiIiKinDC4QEREREREREQ5YXCBiIiIiIiIiHLC4AIRERERERER5YTBBSIiIiIiIiLKyf8HvdS365Byg7wAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p4c.notebook_export_show_image()"
]
},
{
"cell_type": "markdown",
"id": "a45fce84-bbb9-476a-8be3-5eb7b082afed",
"metadata": {},
"source": [
"- graph properties in Cytoscape or pre-calculated?\n",
"- node sizes depending on graph properties\n",
"- edge width depending on graph properties"
]
},
{
"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",
" id | \n",
" group | \n",
" score | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" node 0 | \n",
" A | \n",
" 20 | \n",
"
\n",
" \n",
" | 1 | \n",
" node 1 | \n",
" A | \n",
" 10 | \n",
"
\n",
" \n",
" | 2 | \n",
" node 2 | \n",
" B | \n",
" 15 | \n",
"
\n",
" \n",
" | 3 | \n",
" node 3 | \n",
" B | \n",
" 5 | \n",
"
\n",
" \n",
"
\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",
" source | \n",
" target | \n",
" interaction | \n",
" weight | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" node 0 | \n",
" node 1 | \n",
" inhibits | \n",
" 5.1 | \n",
"
\n",
" \n",
" | 1 | \n",
" node 0 | \n",
" node 2 | \n",
" interacts | \n",
" 3.0 | \n",
"
\n",
" \n",
" | 2 | \n",
" node 0 | \n",
" node 3 | \n",
" activates | \n",
" 5.2 | \n",
"
\n",
" \n",
" | 3 | \n",
" node 2 | \n",
" node 3 | \n",
" interacts | \n",
" 9.9 | \n",
"
\n",
" \n",
"
\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": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFwCAYAAADQcmZ5AAA0IUlEQVR4Xu3d13Ob15/f8d/s5iKzyV7sZmazk92Lnclkkov8C5nsTXYmN5nJbTK5SbFXki3J9s9NkiVXSbZlNauZq2r13rssqjf2JpEg0Qh2gr0T5Rt8DwUYfA4oUaJAAQ/eZ+Y1IM45z/PApi7w4Wl/aHr2RAAAAADgTfuDswIAAAAA3gTCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAIA3Iuitltbmeuls80l7yCMhf51460usfgAKB2EDAAC8Np+nTHq7W2VyYlwylVgsKkMDYWn21VjXAnA/wgYAAHgtOoIRi0ac+WKGEpeBvi7x1pda9wHgXoQNAADwyvp62p1pYlZlfGxY/J5y634A3ImwAQAAXkm4K+TMEK9UxkaHWMsBFAjCBgAAmLWWwFNndrBK26RINO6snV50ZMR5bwDuQ9gAAACzpqMSmUpoQuT/BET+vELkD6Uif1om8vcNIsWDzp5TJR6PS6Cp0ro/AHchbAAAgFlpCdQ5M4MpNaMif1U5FTKc/iRha5fziqnSF26zngHAXQgbAABgVnoT4cBZJuMi/6HWDhnpdJSjbMR5ZeLaiTHrGQDchbABAABmZXRkwJkX5GSfHS4y+R8+55VTRc/pcD4HgHsQNgAAwKxMTIw6s4J8GLKDRSZ/V+28cqo0eznsD3AzwgYAAJiVyKR9SviCoB0sMvnXVc4rp0rIX2s9B4B7EDYAAMCsZNqJalOnHSwy+c8Nziunir+xwnoOAPcgbAAAgFkZ7O92ZgVzpsafldvhwml32HmlSCwaTdyXw/0ANyNsAACAWWlvaXTmBVN0a1tnuEj3D55EsHBelChDA2HrGQDchbABAABmxdtQKtHopDMzmKIjF3/pOGtDt7z9fwGR0UxJI1HamhusZwBwF8IGAACYte6OgDMzpMpwIlSc6RPZ0ClyoEckOOHs8XvRbXSd9wbgPoQNAAAwa976koznbbxKiUUjEvRWW/cG4D6EDQAA8Er8nnJz+vfrlHg8Jq3N9dY9AbgTYQMAALwyPfl7ZLjfmSVeWCKRSQn566x7AXAvwgYAAHhlyfMxOlq9MpnhsL/0Eo/FpDfcJr6GMus+ANyNsAEAAF5JS/CZWbsxrS7wVHq6W8xZHLqmY2igR/p7O8x2ubqLlfMeAAoDYQMAAMxaZ6tXQv5aqx4AMiFsAACAWelq90t/b6dVDwAzIWwAAICX6ulqkVgsmlqrAQCzQdgAAAAz0vUWQwNhs9C7L9xmtWdSW3FXGp8+tupnS6+tKb9j1QPIP4QNAACQUbOvRibGR6d2lIrHZj2qsWDBAil7fNOqn60jB3fLmtVfW/UA8g9hAwAAOJRIuCtkAkayDPaHM/TL7HXDxrOaB1K042f5x398l7ABuARhAwAASGXpLdm/t0hu37wkO7Zvl/3790tra2sqbDQ8LZXdO7fJTz+ukT27tklNxd3UtWWPfpPtWzfKpg0/yG9Xz0wLG0+r7su+3Ttk3fPr6irvWc9O2vrzenP/A/uKCBuASxA2AACAlD6+Je8tWiSbNm2SqqoqOXjwoHz00UcSiUSkv79XPvrwAynavlluXjsrv2zfJB9//JEZidDw8OEHS2Xvru1y4+pp+e7bL+Xdd981YUPXXixf9pkJIsXXz8rOoi3m/UzrOWorpwLMqeP7CRuASxA2AAAocEFvlYRCIXnnnXdkYGDAjGTEYjFZuHChtLe3y6ULZ2TVyuXTrtH3GgrUl6tWpOorSorNfTRsXDp31ISL9OtWfrFMLp0/Zn2GdIQNwD0IGwAAwIxsLFq0KDVtSsuSJUvMVKrdO7ebKU7p/fW9jlTsSvh507ppbYvff8+EDZ2WpVOqFi9+P0Xf6zQp5/PTETYA9yBsAAAAeXTvqplGldzmNhk2QqFmObh/p6z/ae20/rq2Yt+eHSY4rPthdapep0gl12wcO7xXvl/zzbTrnlXft57tRNgA3IOwAQAATNjQkQ39ubsjIPF43ISNJs8zeXDnirz33iJ5fP+aadfXRQsXyt3ii6ZNryt5eMO0aVBITqN68uC6abt/+5JpqywpNqMbN66ctp6fjrABuAdhAwAATAsbqiVQZ8JGXU2ZeX/y2K+ydOkSWbH8s8TrYjl+ZF+q77HDexJ9F8uyzz+V79d+K0sSgSK5G9XZUwdN/xXLPzd9dDTE+WwnwgbgHoQNAAAKXEvgqejZGs56v6dcgk1VqfeeusdS/uSmNNQ+tPrq9KjqssynfuvUKl04Xl9jXwfA3QgbAAAUMA0aOmVqdGRAfA1ToxgA8KYQNgAAKFA6chGZnDCLwYeH+qx2AJgrwgYAAAVqZLjfBI3JyXHxeRjVAPDmETYAAChQbc0NEolMSMhfa7UBwJtA2AAAoIB56+2F4QDwphA2AAAAAGQFYQMAgAKhoxh9Pe2szwAwbwgbAAAUiIG+LrMgfHxsxGoDgGwgbAAAUAA623wmaGhpD3msdgDIBsIGAAAu560vlWhk0gSNvnCb1Q4A2ULYAACgAAS91TLQ15n4md2nAMwfwgYAAACArCBsAAAAAMgKwgYAAC7UEnwmE+Mj0uytsdoAYL4QNgAAcBl/Y4VEni8IH+wPW+0AMF8IGwAAuEqJjI4MmqAxOTEmvgYO8APw9hA2AABwkUBjpQkZsVhMmn1MoQLwdhE2AABwGR3NaA0+s+oBYL4RNgAAAABkBWEDAIA8pyeEB5qqrHoAeNsIGwAA5LnB/m6JRSPS1txgtQHA20TYAAAgj3W1+83OU1oIGwByDWEDAIA8FfLXSjweM0Gjt7vVageAt42wAQBAnvJ7ymVkuN9wtgFALiBsAACQ5zi4D0CuImwAAAAAyArCBgAAeUQP6+PAPgD5grABAECeCDRWSjQ6KfF4XNpCHqsdAHINYQMAgDzgrS+RsdEhs/PUxPio+BpKrT4AkGsIGwAA5IHujqAJGrFYVILeaqsdAHIRYQMAgDygIxv9PR3S0dJktQFAriJsAAAAAMgKwgYAAACArCBsAACQowb7u6WrPWDVA0C+IGwAAJCDujsCZkG4SFyafTVWOwDkA8IGAAA5JuSvM2dpaOnparHaASBfEDYAAMgxveFWEzRGhvqsNgDIJ4QNAAByUEerV3yecqseAPIJYQMAAABAVhA2AADIAf7GCqsOAPIdYQMAgLcs0FQp0WhEBvo6zUnhznYAyFeEDQAA3iINF+Njw2ZB+MT4SOJ9qdUHAPIVYQMAgLeov7fTBI1YLCpBb5XVDgD5jLABAMBb1N0RNGdqtLc0Wm0AkO8IGwAAvGW6ZsNZBwBuQNgAAGAOPHWPEh7Pqj5Z52xzvgcAtyBsAAAwB+fPHJZbN85Z9UcO7ZYrF09k7Hvy+KFpbcn6h3evmJ+d9wKAfEXYAABgDh7duyoVJcXm9f7tS3Ls8F65W3zRhI0TR3817x/cuZzq29RYI1evXpWrV6b6PnlwPXWP3Tu3yfp1a6W28p7U1zyU0ycOyMljv8qz6vvWcwEgHxA2AACYg+QIhr5qUNCgsWL5Z3Jo/z/JD99/l3h/QVatXG4Cw8njB6WystKEjU0b15sQ8vVXK2X/viJzj+NH9snOoi0maOzZtU3Onjokl84fkwOJdudzASAfEDYAAJiD9LChwUDrNm34Qfbu3i4Xzx0173/etE7Kn9yUa4mQUVVVJefPnZEbV05PXX9wt2zZ/JO5x+ULx819tP765VOy8otlUrRjs5Q8vG49FwDyAWEDAIA5SA8byXUYmzf+mAgbO1LvNWyUPb4pJ08ckpKSx3L4wG65eHYqiOwq2iK/bNtk+l5JCxvF189KbeVd8/rlqhXWcwEgHxA2AACYg1cJG8k+h/bvlNXffSXbt26UjRt+MKMbWq/TqlYs/9ys47hw9ojps23Letm3Z4f1XADIB4QNAADekmc1D6w63QY3+XND7UOzfsPZBwDyBWEDAIAsCTZVydBAj/g85VYbABQCwgYAAFngrS+V8bER0TI82Gu1A0AhIGwAAJAFA31dJmjEohEJNFVZ7QBQCAgbAAC8YYGmSonFoiZstIU8VjsAFArCBgAAWRD0VklXe8CqB4BCQtgAAAAAkBWEDQAA3hBvQ6lVBwCFjLABAMAbEO4KyeTEmDT7aqw2AChUhA0AAOaoNfhM4vG4WRDe3RG02gGgUBE2AACYg0BjhUQjkyZo6AF+znYAKGSEDQAA5iDorTbTpyYmRsXHmg0AmIawAQDAHPkayiTIwX0AYCFsAAAAAMgKwgYAAK9ID+xjJAMAXo6wAQDAK9CzNCbGRyUWjZpdqJztAIDfETYAAHgFg/1hs/NUNBqRQFOl1Q4A+B1hAwCAWeps85mgIRKX1uZ6qx0AMB1hAwCAWfJ7ymVkuF96ulusNgCAjbABAAAAICsIGwAAAACygrABAMALdHcEpTXI+gwAeB2EDQAAZqCLwHUxuAr5a612AMCLETYAAMhAt7XV7W216Ha3znYAwMsRNgAAyKC/t8MEDT3ATw/yc7YDAF6OsAEAQAbe+hLpDbdJ0FtttQEAZoewAQAAACArCBsAADynoxnOOgDA6yNsAACQ4GsolYnxEenuCFhtAIDXQ9gAACBhaKDHLAiPRibF7ym32gEAr46wAQAoeHpw31SJS2vwmdUOAHg9hA0AQMHr7+00USPcFbLaAACvj7ABAMCzqdPCnXUAgLkhbAAAAADICsIGAKAgNftqrToAwJtF2AAAFJy2UINZozHQ12W1AQDeHMIGAKCgBJqqJBaNEDYAYB4QNgAABUNPCB8fGzZBY3xsJPG+1OoDAHhzCBsAgIKiJ4RHo5MSbKqy2gAAbxZhAwBQcHwNjGgAwHwgbAAAAADICsIGAMDVfA1l0tMVMus1nG0AgOwibAAAXG14sNcsCB8a7LHaAADZRdgAALhWuLPZBI14PC4tgadWOwAguwgbAABXCjRWmJChJdwZtNoBANlH2AAAuFZrsF4G+jqtegDA/CBsAAAAAMgKwgYAAACArCBsAABco72lUUaG+8XvKbfaAADzj7ABAHCFoLdKYrGoWRDeG2612gEA84+wAQDIe976UpkYHzFBY3xsmAP8ACBHEDYAAHkv5K+TWDQq0WhEAk2VVjsA4O0gbAAAXCHYVCWtwWdWPQDg7SFsAAAAAMgKwgYAIC/5PGXiayiz6gEAuYOwAQDISyNDfTI5MSbNvhqrDQCQGwgbAIC809MVMjtPxeNxszjc2Q4AyA2EDQBAXmltrteYYcJGd0fAagcA5A7CBgAgr+i0KZ0+NTQQttoAALmFsAEAyDu6MNzbUGrVAwByC2EDAPDW6Enfbc0NMtDXJaMjgxKZHJfJBP25v6eDczMAIM8RNgAAb0Vnm9eEi5eVifFRCXc2m0P7nPcAAOQ2wgYAYF7p9KehwR5npnhpiUQmpNnHzlMAkE8IGwCAeaPTpsZGh5w5YtZlaKDHuicAIHcRNgAA80bXZsy19HS1WPcFAOQmwgYAYF60BJ46c0Oq9EREirpFFgZFFjeL/BoWGY05e00VPciP9RsAkB8IGwCAeaE7TGUqx3tF/qJC5A+l0/1NlcidGWZcDfZ3W/cHAOQewgYAIOsCjZXOvGDK1QGRPy2zg0bSvygXqR51XiUSi0XN+g/ncwAAuYWwAQDIus42nzMvSDzh39XYAcPpv3icV06V1mC99RwAQG4hbAAAsq433OrMClI2YgeLTP4kIRxxXi3S1e63ngMAyC2EDQBA1mXahepknx0sZlI+4rxad6UKWc8BAOQWwgYAIOv6etqdWUFuDtqhYib+CefVIt0dAes5AIDcQtgAAGRduDPozAoyEhP5l+V2sHD6tzXOK6dKe0uj9RwAQG4hbAAAsi7kr3NmBVO+abPDhdP+HudVWuLi95RbzwEA5BbCBgAg6/RAPz2Mz1n03L7/5bcDRtJye125KXpmh/MZAIDcQ9gAAMyL8bFhZ2ZIFV0s/g8ekb+tFvm7hP/eNLWmY6bS1txg3R8AkHsIGwCAN8bXUCrdnUETLLz1pY62MpkYz3BC3yuWkeF+67kAgNxE2AAAzJme5t0XbpNY9PcDMTKdgxFsqpJoWp9XLZOT4+JjrQYA5A3CBgDgjUhOk9JA0N0RFG/D9JGNpJC/ViKRDHvZvqToqIiGFef9AAC5i7ABAHhlLcFn4vOUTatrba6XjpamxM8lVn8nf2OFDA/2OvPEDCVuDgXUaVjO+wAAchthAwAwa3q2xdjo1AhG+A2c4K27VGmQiMd1X6rpJTI5If29HdLsq7GuAwDkB8IGAGBWBvu7U0FAt7HVU8GdfV6Xhpje7lZpDdabcMEZGgDgDoQNAMCs6DSpWCxqQkagscJqBwDAibABAJhGF2H393aakQZnG+smAACvgrABADCC3moZMou2p0761lGMtxEuaivuSuPTx1b9y+g1r3stACA7CBsAAEO3pE2W0ZGBeTulW8/j6GzzmR2q9P2CBQuk7PFNq9+L3LpxTv740Yfy8R8/ko8+/EBu/3be6gMAmH+EDQAoQHoIn+4E5azv6WpJhI46qz6bdNcpLbo4XN+/athoqH0oHyxdIlcunjDvL5w9Ip9+8kdGOAAgBxA2AKCA6LSocGezRCKTZkep5GjCXFWW3pL9e4vk+uVTsv6ntbL15/Xy6N7VVHt12W3ZvXOb/PTjGtmza5vUVNw19XpWR3d3txw6dEg2b1wnv109My1sPK26L/t275B1z6+rq7xnPfu3a2fk448/mlbH6AYA5AbCBgAUCA0asWgkNVUqGp1MjSbMlQaLRQsXyprVX8vViydk+9YNsnTpEjPqUFt513z5L9q+WW5eOyu/bN9kwsGzmgfibahI/PyxnDl9Wm5cPS3fffulvPvuuyZs6MjE8mWfJe61UYqvn5WdRVvMe+eIxfEj+8xz0+u++XqVnD5xwPqcAID5RdgAgAIyNNgjkxNjZp2ETqVytr8uDRvvvPOOVJXdNu89dY/NCMXj+9cSYWCvrFq5fFp/fX/q+H45f+aYrF79nQwN9Jj6ipJicx8NG5fOHTXhIv26lV8sk0vnj02rO7R/p6z7YfW0urVrvpFjh/dMqwMAzD/CBgC4kJ6JMTLcb3aYSq/3ZemwPA0bCxcumFb3/vvvmfqiHZvNtKr0Nn2vIxW7En7etG5a2+LEdRo2dFqWBpbFi99P0fcH9hVN669hZu3qb6bVMbIBALmBsAEALqIncY+PjaSmSg30dVl9ssFMo1q0aFpdMmwc3L/TrONIb9O1G/v27DDBIX1UQqdIJddsHDu8V75fMz1EPKu+bz1b14l8/vkn0+p0V6riG+esvgCA+UXYAAAXGejrNCFDF39r0HCObGTLi8LGgztX5L33FpkpVVqvr7q+427xRdOm15U8vGHadGpVchrVkwfXTdv925dMW2VJsRnduHHl9LTn1Nc8NPW6UFzf65qRDz/8wKwXcX5OAMD8ImwAQJ7SnaT0tO/0uqC3SnrDbW9sl6nZelHY0J9PHvvVLBhfsfyzxOtis6jb21BqwpCurViyZLEs+/xT+X7tt7IkERySu1GdPXXQ9F+x/HPTR0dDnM9Wurhct7/Ve2jQ0AXlzj4AgPlH2ACAPKNf0HXUIh6PyfBgr9Weq3TRePmTm6kRBz00UMvE+KiZHlVddse6RunUKl04riMYzrZM/Tx1j6w2AMDbQdgAgDzS2epNrcfQMj42/EZ3lZpPet6HluGhPqsNAOAOhA0AyCM6PUpHNHSnKd1xytmeTwb7u03Y0GlfzjYAgDsQNgAgB+lohZ6FoV/InW3zvR4jW8ZGh0zY6GhtstoAAO5A2ACAHOJrKJWerhZzuneyhPx1Vj+30PUnerK5sx4A4A6EDQDIIRo2YtGICRnRyKSEu0J8GQcA5C3CBgC8Rc2+WquuuyMgnW2+vF34DQBAEmEDAN4C3fZ1dGTAjGDoz852AADcgLABAPNMd5L6vcTNGg1nH7fTk871/wNBCwDcjbABAPNMz5fQ7Wv7ezutE8ALxcTEqIla7SGP1QYAcA/CBgC8Bj2lWk/EdtanCzRWSF9Pu7S3NE6r10Xgfk+51b9Q6FqUeDxuwkahhi0AKBSEDQB4BQ/vXpHzZw4bt26cs9pVs7fGnI+R/ELt8zaZ/s5+hSrkrzX/X2KxmNUGAHAXwgYApLly8YQcObhL7hZfTNVdv3wqUbdbyh79Jrt3bpP169bK7ZsXpKKkWK4m+qf30xGPO8XX5Pr16+L3+2VsdFgO/LrbXFNbeU+Kr5+Vo4f2SNnjm+aa+pqHcvrEATl57Fd5Vn3f+jxupKM6emBhuDNotQEA3IWwAQDP6ejDwf075dG9q7Jq5XLz5V/rdmzbmAgfF+SrL7+Q40f2ys6iLXJo/y4TTIp2/CwP716XhtqHsmb116b/ocQ9PA218uWXK809jh/ZZ645f/pwov9meXDniumr4WPPrm1y9tQhuXT+mBzYV2R9JgAA8hlhAwCemwoGe2X71g3y6Sd/lMqSW7Jl809mRCPZ5/KF43Lk0G45eniP3L19Q4JBvxw+fEgunjtmQkWmeySv2bThR/npxzXy86Z1svKLZSas6GiI/qwhpOThdeszAQCQzwgbAPDc9q0b5dzpw2aUYvW3X0nFk2L5ZfsmuXfrkmk/dXx/IlQcleNH98u1a9ekqqrKrD3YsmWLbNq4Tmor72a8x5XnYUPbkve6c/OCVJfdMdOq9Dp9/XLVCuszAQCQzwgbAPDcscN7Zd0Pq03AWLVyhdy/fUlKHt6Q79d8Y4KCenDnsqxY/rmcPHFcysvKpLszaNZbbPjp+xnvkbzmxpXTsvq7r8x91q7+xqzXuHD2iKnbtmW97Nuzw/pMbuNrKJOe7hZrhy4AgDsRNgAgjU6Danz6+5a2LYGnMtDXZYJBsk4XgeuWrbqFq/P6TPdIXpP8+WnV9IXgOgqSfn830/+fWqLRSasNAOA+hA0AyEAPmxsbHTJfjLV0tQesPnh1uguVltGRAasNAOA+hA0AyCAZNPSsjKGBsDT7aqw+eHV6arqW/t4Oqw0A4D6EDQAFz+cpN2sJ0uvaQh7p6+mQQFOl1R+vL9wVkvGxYelo9VptAAD3IWwAKFgaJPQv7HqSdU9Xi9UOAADmhrABoCCFO5vNFKlkGR0ZtPoAAIC5IWwAKEitwWcmZIwlQoYuBne2AwCAuSNsAHA13Z62s9Ur3R1Bq63ZV2vVIXt02prfU27VAwDci7ABwJV0wXe4MyiRyQkzghGLRc1CcGc/zJ/B/m7zu9BD/ZxtAAB3ImwAcCXdqjZZotGI9Ha3WjtOYX7pLlRa2IkKAAoHYQOAK/gbK6w6Pfm7uyMg3vpSqw3zT3f90sKZJQBQOAgbAPKaLvQeHuozO0sFGjkTI1fpeg0t+nvSdTTOdgCAOxE2AOSpktQp38nS1e7P0A+5wttQyqgGABQYwgaAvDU0EDZ/KdeFx3yJBQAg9xA2AOQ83S5VdzByBgqzlWqGtRoAACA3EDYA5KxgU5X093ZKPD61sFhHMJx9AABA7iJsAMhZ/b0dqfUYE+Mj0tHaZPVB7tMF4RPjozI82Cs+D9sPA0AhIWwAyBnOQ/cCTVUyMtwvbc0NVl/kDz2pXYtufetsAwC4G2EDQNbpLkTOulRbfYl0tvmm/vI91Ge1I//pIX5a9FA/ZxsAwN0IGwCyStdd6BSoTGcrtASeSjQymZoqFYtFzWJwZz/kt75wm/n9suYGAAoPYQNA1mhwmJwYM180dfQiU3s8FjOBo6erxZpGBXcI+WuluzMorc31VhsAwN0IGwCywtdQZqbNJItOk9Lta539dHQj06gHAADIf4QNAG+cBg3n6d5aNHxouHD2BwAA7kTYAApYoLHSLN4NdzabUYfujoC0hzwvXND9Mjo1Kn1EI72MjQ5bB/MBAAD3ImwABai9pdF88Z+p6CF6QwM9EvRWW9e+iPafnBx33m5aCfnrrOvgXq3BZ2a9Br93AChMhA2ggPg9FTI6MuD8/j9jicfj0htute6TiQYY3U3qZUVDjPNauFfyYEZ9dbYBANyPsAEUCB11iExOOL76z67oyc8zLeLWKVfpJ31r0R2o9DA+3eq0t7s1NUVLd6QKdwYT12W+F9wnGW672v1WGwDA/QgbQAHwecpSW9C+bhno67Tu2xqsl/GxERka7EmECZ0qUztjKEFhikYj5t8PGwMAQGEibAAFQEcYXlTqEjmkeFCka+p74YxFF4/r/XQ6VluowYQNRikwE299qRkVm5gYNTuUOdsBAO5H2ABcrtlX68wMqbIzkUH+pkrkD6W/+0/1IqUjzp5TJfmlkdELAAAwG4QNwOX6ezudmcGUD0PTQ0a6f14u8tug84qpMjWaYT8HAADAibABuFwkYi8KvzZgBwynv64SGY45r2RXIQAAMHuEDcDF9IC9TOW/NdnhIpN9YeeVIqMjg9ZzgEz0AMe5HBAJAMh/hA3AxfTLXqbyt9V2sMhkcbPzyqltbZ3PATKJxaaGxl71cEgAgHsQNgAXm2lx+L9xLAqfyXuZwsbkuPUcwCnYVGX+vejBkGwoAACFi7ABuNhM06j+a6MdLDLR3aqcZYxpVJgF3SZZy8T4qNUGACgchA3A5aKRSUdcEDnbZwcLp39VKdIfdV6pC8Ttw/0Ap3Dn1LCYHvjobAMAFA7CBuByA31djrgwVf5vwA4YSf+sTORcv/OKqdLW3GA9A8hER9YCTVVWPQCgcBA2AJcL+eucecGUeMKPHSJ/UTE9aPzHRPdbM5yxoes1mH8PAABmi7ABFACdyjJTmUikjgfDU4f41Y46W6eXjtYm694AAAAzIWwABcDvqZDIpH2436uUoYEwoxoAAOCVEDaAAqHb4GZaLD6bMjo8kAgapeJrKJNAU6V1byBde0ujjI8NS093i9UGACgshA2ggGhQ0C+Br1J096n0EQ1/Y4V0dwTF5ymz7g+o3nCb+bcz2N9ttQEACgthAyhAnW0+cxL4zCUuI8P9ZnG581qluwyNjgxKd2eQqVWwDA/1mX9Fuv2tsw0AUFgIG0ABa/bWSFd7QHq7W2Wgr9NMe+loaTJhwtnXSUc4NLBEIpOJL5VBM8XK2Qf5y1P3KOGxVT8bumuZFrZJBgAQNgC8tqC3SqLRiPliGYvFzJkeLYGnVj/kn/NnDsutG+es+od3r5g2Z306XbOhwfVloXU29wIA5DfCBoA5aQ0+M9Ou0ovufKVrPfQv296GUusa5L5H965KRUmxeb1/+5IcO7xX7hZflN07t8n6dWultvKe6Vd8/awcPbRHyh7fNOHh5rWzqQBx5eIJOXJwl7kued/rl08l6nZL2aPfUveqKrstp08ckJPHfpVn1fetzwIAyF+EDQBGbcVdaXz6etNmwp0hGR7OvPA8Ho/L+NiItIc81nXIXUcO7Z4KC4lXDQQaGFYs/8y831m0ReprHsqlc0elaMdmeXDniqxZ/bX8uucX+fH77+TGldMmcBzcv9OElVUrl5sQoXU7tm1M3OuCfPXlF3L8yF5zr13/tFXOnjokl84fkwP7iqzPAgDIX4QNAMaCBQvMX6ed9S9zLvEl8YOlS2T58mXyxRdfiN/vd+YNmZgYFR8jHHklPWxoCNC6TRt+MKMPWjf1/kf56cc18vOmdbLyi2WyOfF68exR06bhQsPE9q0b5NNP/iiVJbdky+afzIhG8hmXLxw399LRDr1eg0vJw+vWZwEA5C/CBgDjdcKGTrNZtGiRmT6j6zdu374tK1asmBY0dC2HLkR3Xovclh429FXrNm/8UU4e358KG9u3bpR7ty6Zn+/cvCB7d++Qu7evS1e7X37ZtlnOnT4sDbUPZfW3X0nFk2L5ZfumVP9TiftcPHfU3EunYtVW3jWvX65aYX0WAED+ImwAeayy9Jbs31tk/jK8/qe1svXn9WbaSrK9uuy2mRevf33es2ub1FTcTbXpX5j1y6L+tfq3q2emhY2nVfdlX+KL47rn19U9n5/vpHPtr1w4nnpfU/lEFi5caKZOJUtHaxPb4+ahmcLG1UsnZcXyz+XJg+tS8vCGrP7uK/PvaO3qb8wUqIqKMvN7P33isKz7YbUJGKtWrjDrPrT/92u+Mf3VgzuXzb10DYfeZ9uW9bJvzw7rswAA8hdhA8hjGiwWJb7c63z5q4kvhDplZenSJeavyfqX4o8+/ECKtm82i3b1S9/HH38kz2oemPDw4QdLZe+u7XLj6mn57tsv5d133zVhQ9dtLF/2mfkyqH9p1jn1+v5F6zn0nhfOHpGVXyyXM2dOp4JGf2+HadfD3YYGe9ke1yV0W9z09xpO9dXvqUj97vV3rVOpnP9u9H36IvDkvfTfrK4DcT4LAJDfCBtAHtOw8c4775gRBn2v5yLoCMXj+9fMfHldmJveX9/r9BWVPl1Fp0PpfTRs6KJfDRfp1+l8+uS8/Uz0r9w6b//zzz6RvbuLzMjG2OiQGdFo9tWkRjr0XA5977we7tAarDe/Z92NzNkGAChMhA0gj2nYWLhwwbS6999/z9TrYludVpXepu/N7j8JGg7S2xYnrtOwodOyNLAsXvx+ir6fzS5B+hduXSxe8vihBBorU/W6PW40Mmm+iMaiEUY4XEp/z3ryvI5kOdsAAIWJsAHkMTONatGiaXXJsKHbjuo6jvQ2Xbuhc+I1OOh8+mS9Tm1JrtnQ8xR0Xn36dTOdfaALw3XL0vS6r79aKceP7LP66onjoyOD5sRyZxsAAHAnwgaQx14UNvTsg/feW2SmVGm9vur6Dj0vQdv0Ol2wq206rSo5jUqnRGmbLujVtsqSYjO6oWcnOJ+vOwtp39Ln99EFv+nPtLFQHACAQkLYAPLYi8KG/qxnIuiCcT2MbenSxdNGHI4d3iNLliyWZZ9/Kt+v/VaWJAJFcjeqs6cOmv66U5D2edEOQbqTkPbRvjqFyjnS8SK6pmN4qM+cNO5sAwAA+Y+wAbicLhovf3LT7PbjbNPpUdVld6x6pVOrdOH4bHYI0ntrX+fOQy8T7gqldi/q7W612pE/9NBGzlMBADgRNgC8Nd76UrOYOFlYWJy/2kMe8zucGB+x2gAAhYuwAeCt0xOn9aRx3c3I2Yb80PN8lErPU3G2AQAKF2EDQE7we8qtOuSPoYGwCRs93S1WGwCgcBE2AOQkDR96ArmuBXC2IfeMjw2bsNHe0mi1AQAKF2EDQE7Sw+Gm1gCMStBbbbUj9+jviQMbAQDpCBsAclJrsF6i0eenjseibI8LAEAeImwAyFmBxkoZGx2SWDQigaYqqx0AAOQ2wgaAnKYH/zX7OL8BAIB8RNgAkHeafbVmmpWzHm+Hno8yOjIgrc38TgAA0xE2AOQVXYA8OTEuInFztoOzHfNvclJ/H8K6GgCAhbABIK/oVrjJMx20jAz1ic/DDkhvi/4+kkXX2DjbAQCFjbABIC91dwQkHo+brXE5i+PtCfnrTNDQRfzONgAACBsA8pZ+0eUMjrdLD1/sbPOZ8OdsAwCAsAHAVVoCdeKtZ6QDAIBcQNgA4Bo6yqEHAE6MjyR+5lwOAADeNsIGANdoDT6TaDQytYYgETraQx6rDwAAmD+EDQCuEmiqlPGxYRM4hof6rHa8OT5PufR2t0p7S6PVBgCAImwAcB09dbw33MqWuFmmBytqiUQmrDYAABRhA0DB4ByIN6u7I2jCxshwv9UGAIAibAAoCHq6tZ7LEe5sttrwegb6ukzY6Otpt9oAAFCEDQAFIfnF2KzlGOwVXwNTrOYq3BUy62M6WpqsNgAAFGEDQMEIdwbN6IYWRjgAAMg+wgaAgtISeCqDA+HEzyVWGwAAeLMIGwBcxVP3KOGxVf8yuoOVsw4AAMwNYQOAq5w/c1hu3Thn1auHd6+Ydme9TqnStQeBptmfOj7TvQpFMPH/yu+psOoBAEhH2ADgKo/uXZWKkmLzev/2JTl2eK/cLb5o2nbv3Cbr162V2sp7Unz9rBw9tCfR95Y5dbylpUWePa2Ta1fOmr5XLp6QIwd3pa5V1y+fStTtlrJHv6XuVVV2W06fOCAnj/0qz6rvW5/HrYYGwmbtS09Xi9UGAEASYQOAqxw5tHsqKCReNQxoWFix/DMTBI4f2Sc7i7bI+dOHpWjHZnlw54qsWf21NNQ+kYsXL8i2bdukrq5OLl84KQf37zSBZdXK5eZaHcXYsW1j4n4X5Ksvv0jca6+5165/2ipnTx2SS+ePyYF9RdbncauJ8RETNjg9HADwIoQNAK6SHjY0AGjdpg0/SNnj3xIh4rip37ThR/npxzXy86Z1svKLZab/oQO75O7tm9Lf2/k8mOyV7Vs3yKef/FEqS27Jls0/mRGN5HOS99LRDr2HhpeSh9etz+NGur4luatX0FtttQMAkETYAOAq6WFDX7Vu88YfE2Hjplx5HhC2b90o925dMm13bl6Q6rI7cmj/zlR/bT93+rA01D6U1d9+JRVPiuWX7ZtS15w6vl8unjtq7qXTsWor75rXL1etsD6PG+l6DS3xeEzY1QsA8CKEDQCu8qKw8eDOZVmx/HO5ceW0rP7uKxMq1q7+RuprHk4LG7rOY90Pq03A+Pbbr6Wq4rGUPLwh36/5xlyjkvfSNRx6r21b1su+PTusz+NW3vpSRjUAAC9F2ABQUHRr3OTPT6tmXtCtU6lam+vNX/C1DA30mOlD6YvAk/fSERANLM57AABQ6AgbAPAC4a5Qan3C+NiIMG0IAIDZI2wAwEu0Bp9JNDIpXe1+qw0AAMyMsAEAs+DzlFt1hcjbUCqTE2MyPNgrvsTPznYAANIRNgDgNej6jYG+Tgk0Vlptbhby15kpZbFo1GoDAMCJsAEAr6Gvp9186dbTx3UhubPdrTrbfOa/e2x0yGoDAMCJsAEAr0G3fZ0YH53aqkri0t0RtPq4UTJk6aiOsw0AACfCBgC8Jl2/MNgfNrtVtQSfWe1u1OyrNcFKF8072wAAcCJsAMAcNftqrDoAAEDYAIA3zu+pMGsbnPUAABQawgYAvFElMjoyYNY1DPZ3m6lWdh8AAAoDYQMA3rCe7hazaFyLLiIPNlVZffKR7roV7mw229862wAAyISwAQBZoF/MdVtcFWhyx1kcA31dJkDpjlTONgAAMiFsAECWaMhoCTy16vOVnq2hhfUoAIDZImwAwDzSnav8jRVWfT6IxaImbDCNCgAwW4QNAJgnPk+ZTE6OSzQymXfnVPgaSmVosNesQfHWs+gdADA7hA0AmCe6UHxiYurUcT0IMNwVsvoAAOAmhA0AmEdmhGCgJ7VTFaMEAAA3I2wAwFvQ3RGQoLfaqgcAwE0IGwCQI3J5i1xd2K6jMs56AABehLABADlARzl0tyc9yyIXplZ560vMNK/hoT7pC7fJ6MigTE6MSTOjMQCAV0DYAIAcoNOqkmV8bCQnTh0fGe5PfaZk0YXtGkKGBsImkDivAQAgHWEDAHJEW8gjsWjEfKkf7O+22udbuLPZETV+Lz1dLVZ/AACcCBsAkEMCTVUyNNgjvoYyq22+tQSfOTOGKeNjw4l2RjUAAC9H2ACAPPA21nF4G0oT0SI+LWjoNKqQv9bqCwBAJoQNAMhxbaEGiUxOSEvgqdWWbXrieXrp7+2w+gAAMBPCBgDkuLHR4dSoQndn0GrPppGhvlTQiEWj4veUW30AAJgJYQMAcpyu3xge7E196e9obbL6ZEt/b2fquSwKBwC8KsIGAOQJ3R1Kt6N11meTBgwtegZILixaBwDkF8IGAGBGyfM/+nrarTYAAF6GsAEAeUxHO3SqU7YO2Ots85mwkQuHDAIA8g9hAwDylJ7JoYvGtejZF4GmSqvPXHW0emV0ZMCqBwBgNggbAJDH2lsazXoKLdFoRPyeCqvPXOjIRle736oHAGA2CBsAkOeC3iqZGB/JyhkYGjTedIABABQOwgYAuICeMJ6NdRt6oKCzDgCA2SJsAIBL6Q5SIX+dVf8qWBgOAJgLwgYAuFByFyldQN7VHrDaZ4uzNQAAc0HYAAAX8nnKZWSozwQOLQN9XVafdN6GUrPYvL+nQ4YGeswOVIP93dLT3SItgadWfwAAZoOwAQAuNnUCuI5uZN5RSkcuesNtEo/FUsEkU5mcHDfb4DqvBwDgRQgbAOByzb4aq07peo5IZNKZK15YRob7xedhahUAYHYIGwBQYHTXqj4dzYi/eDRjpjI5MSZ+T7l1XwAAnAgbAFBg+ns7nfnhlcvoyGBWttoFALgLYQMACsz42LAzO6RKcELkQI/IhkQeOd0nMvyCwY/ujqB1bwAA0hE2AKCAtDU3ODODKaOJUPFOQORPy0T+UPq7v6wU2R129p4q0WhEfA2l1jMAAEgibABAARkasJODDl78g2d6yHDa0uW8aqrodrnOZwAAkETYAIACEotGnHlB9oTtcOH0Z+UibRk2rtKzOJzPAAAgibABAAXC31jhzAqm/H2DHS4y2ZhhXfnY6JD1HAAAkggbAFAgQv5aZ1Yw5a+r7GCRyT8GnVeKRCbHrecAAJBE2ACAAtHsrXFmBVP+rtoOFpl8EHJeOXXmhvM5AAAkETYAoED4GsqcWcGU/+mzg0UmJ3qdV+p5GwPWcwAASCJsAEAB0ZEIZykbsbe8dfr3tSKTceeVIr3hNusZAAAkETYAoID0JcJBprKtS+RPMoQM9VeVItWjziumSkugznoGAABJhA0AKCCBpkqJxzMfC148OLUzVXKU488rRP53QCQ04ew5VdiJCgDwMoQNACgwM41uJEs0nvlMDWdpCTy17g0AQDrCBgAUGG99iRmVmEvp6QpZ9wUAwImwAQAFyO8pTwSOYWeGmFXp62m37gcAQCaEDQAoUN76Uhno60rEhwzbTGUosWhEOtt81n0AAJgJYQMAClyzr0YGB8ISi0Wd+cKUyclx6e1uFZ+nzLoWAIAXIWwAAAxdyxHy10l7yGNGMFqb6yXorbb6AQAwW4QNAAAAAFlB2AAAAACQFYQNAICltuKuND59bNXPVm3lvTldDwBwB8IGAMCyYMECKXt806p/mbOnDskHS5fIp5/8UZYuXSynTxyw+gAACgdhAwBgeZ2wUfboN3nvvUXy6N5V815fFy1aJCUPb1h9AQCFgbABAC5RWXpL9u8tkuuXT8n6n9bK1p/Xp774q+qy27J75zb56cc1smfXNqmpuJtq06CwfetG2bThB/nt6plpYeNp1X3Zt3uHrHt+XV3lPevZ6sGdK3JgX9G0us8/+0SuXDhu9QUAFAbCBgC4hBlJWLhQ1qz+Wq5ePJEIDxtk6dIl0lD7UGor78pHH34gRds3y81rZ+WX7Zvk448/kmc1D0x4+PCDpbJ313a5cfW0fPftl/Luu++asKHrLpYv+8wEkeLrZ2Vn0RbzfjbrMR7cuWxCS8WTYqsNAFAYCBsA4BIaNt555x2pKrtt3nvqHpsv+4/vX5PjR/bKqpXLp/XX96eO7ze+XLUiVV9RUmzuo2Hj0rmjJlykX7fyi2Vy6fwx6/npdKREw82h/TutNgBA4SBsAIBLaNhYuHDBtLr333/P1Bft2GymVaW36XsdqdiV8POmddPaFieu07Ch07I0sCxe/H6KvndOl0p35+YFszj8IEEDAAoeYQMAXCK5IDu9Lhk29Iu/ruNIb9O1G/v27DDBYd0Pq1P1OkUquWbj2OG98v2ab6Zd96z6vvXsJF0vsvj99+X8mcNWGwCg8BA2AMAlXhQ2dPG27hSlU6q0Xl91fcfd4oumLX3XKJ1WlZxG9eTBddN2//Yl01ZZUmxGN25cOW09X6dOad+zpw5KTfmdFF0z4uwLACgM/x+zL2OZC6N3OwAAAABJRU5ErkJggg==",
"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",
" SUID | \n",
" shared name | \n",
" id | \n",
" name | \n",
" selected | \n",
"
\n",
" \n",
" \n",
" \n",
" | 427 | \n",
" 427 | \n",
" A | \n",
" A | \n",
" A | \n",
" False | \n",
"
\n",
" \n",
" | 430 | \n",
" 430 | \n",
" B | \n",
" B | \n",
" B | \n",
" False | \n",
"
\n",
" \n",
" | 433 | \n",
" 433 | \n",
" C | \n",
" C | \n",
" C | \n",
" False | \n",
"
\n",
" \n",
" | 436 | \n",
" 436 | \n",
" D | \n",
" D | \n",
" D | \n",
" False | \n",
"
\n",
" \n",
"
\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
}