From 578c543a3e9a19c05ee1a5caa88e803d6a6137fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20F=C3=B6rster?= Date: Fri, 19 Jul 2024 10:31:17 +0200 Subject: [PATCH] verify Cyto API conn, add docs --- .../cytoscape_config/template_test.cys | Bin 75931 -> 84757 bytes src/lang_main/loggers.py | 3 + src/lang_main/pipelines/base.py | 13 +- src/lang_main/pipelines/predefined.py | 1 + src/lang_main/render/cytoscape.py | 169 ++++++- test-notebooks/misc.ipynb | 467 +++--------------- 6 files changed, 255 insertions(+), 398 deletions(-) diff --git a/src/lang_main/cytoscape_config/template_test.cys b/src/lang_main/cytoscape_config/template_test.cys index ee1eb0056d13777f609621392af2f6d610e76987..4cead42a42a2074cbeab5ffd693ab88e1c7c223b 100644 GIT binary patch literal 84757 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�X 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 literal 75931 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 z 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 diff --git a/src/lang_main/loggers.py b/src/lang_main/loggers.py index eecb00b..bc4a992 100644 --- a/src/lang_main/loggers.py +++ b/src/lang_main/loggers.py @@ -10,6 +10,7 @@ LOGGING_LEVEL_GRAPHS: Final[LoggingLevels] = LoggingLevels.INFO LOGGING_LEVEL_TIMELINE: Final[LoggingLevels] = LoggingLevels.DEBUG LOGGING_LEVEL_TOKEN_ANALYSIS: Final[LoggingLevels] = LoggingLevels.INFO LOGGING_LEVEL_SHARED_HELPERS: Final[LoggingLevels] = LoggingLevels.INFO +LOGGING_LEVEL_RENDERING: Final[LoggingLevels] = LoggingLevels.INFO logger_shared_helpers = logging.getLogger('lang_main.shared') logger_shared_helpers.setLevel(LOGGING_LEVEL_SHARED_HELPERS) @@ -23,3 +24,5 @@ logger_token_analysis.setLevel(LOGGING_LEVEL_TOKEN_ANALYSIS) logger_preprocess.setLevel(LOGGING_LEVEL_PREPROCESS) logger_pipelines = logging.getLogger('lang_main.pipelines') logger_pipelines.setLevel(LOGGING_LEVEL_PIPELINES) +logger_rendering = logging.getLogger('lang_main.render') +logger_rendering.setLevel(LOGGING_LEVEL_RENDERING) diff --git a/src/lang_main/pipelines/base.py b/src/lang_main/pipelines/base.py index fb17250..d05fc6b 100644 --- a/src/lang_main/pipelines/base.py +++ b/src/lang_main/pipelines/base.py @@ -295,14 +295,15 @@ class Pipeline(BasePipeline): else: args = ret - if args is not None and action_kwargs: + if args is not None: ret = action(*args, **action_kwargs) - elif args is not None: - ret = action(*args) - elif args is None and action_kwargs: - ret = action(**action_kwargs) + # elif args is not None: + # ret = action(*args) + # elif args is None and action_kwargs: + # ret = action(**action_kwargs) else: - ret = action() + # ret = action() + ret = action(**action_kwargs) if ret is not None and not isinstance(ret, tuple): ret = (ret,) diff --git a/src/lang_main/pipelines/predefined.py b/src/lang_main/pipelines/predefined.py index f2f2cbf..fc37efd 100644 --- a/src/lang_main/pipelines/predefined.py +++ b/src/lang_main/pipelines/predefined.py @@ -182,6 +182,7 @@ def build_tk_graph_rescaling_pipe() -> Pipeline: return pipe_graph_rescaling +# ** token analysis: rendering def build_tk_graph_rendering_pipe() -> Pipeline: pipe_graph_rendering = Pipeline( name='Graph_Static-Rendering', diff --git a/src/lang_main/render/cytoscape.py b/src/lang_main/render/cytoscape.py index 7560ce6..ca45ee1 100644 --- a/src/lang_main/render/cytoscape.py +++ b/src/lang_main/render/cytoscape.py @@ -5,6 +5,8 @@ from typing import cast import py4cytoscape as p4c from networkx import DiGraph, Graph +from py4cytoscape.exceptions import CyError +from requests.exceptions import RequestException from lang_main.constants import ( CYTO_BASE_NETWORK_NAME, @@ -19,6 +21,7 @@ from lang_main.constants import ( PROPERTY_NAME_DEGREE_WEIGHTED, SAVE_PATH_FOLDER, ) +from lang_main.loggers import logger_rendering as logger from lang_main.types import ( CytoExportFileTypes, CytoExportPageSizes, @@ -29,9 +32,40 @@ from lang_main.types import ( # ** Cytoscape API related, using py4cytoscape +def verify_connection(): + """Cytoscape: checks if CyREST and Cytoscape versions are compatible nad + if Cytoscape API endpoint is reachable + + Raises + ------ + CyError + incompatible CyREST or Cytoscape versions + RequestException + API endpoint not reachable + """ + try: + p4c.cytoscape_ping() + except CyError as error: + logger.error('[CyError] CyREST or Cytoscape version not supported.') + raise error + except RequestException as error: + logger.error('[CytoAPIConnection] Connection to CyREST API failed.') + raise error + + def import_to_cytoscape( graph: DiGraph | Graph, ) -> None: + """Cytoscape: import NetworkX graph as new network collection + + Parameters + ---------- + graph : DiGraph | Graph + NetworkX graph object + """ + logger.debug('Checking Cytoscape connection...') + verify_connection() + logger.debug('Importing network to Cytoscape...') p4c.delete_all_networks() p4c.create_network_from_networkx( graph, @@ -39,9 +73,11 @@ def import_to_cytoscape( collection=CYTO_COLLECTION_NAME, ) p4c.analyze_network(directed=False) + logger.debug('Importing network to Cytoscape successful.') def reset_current_network_to_base() -> None: + """resets to currently selected network in Cytoscape back to the base one""" p4c.set_current_network(CYTO_BASE_NETWORK_NAME) @@ -51,7 +87,21 @@ def export_network_to_image( network_name: str = CYTO_BASE_NETWORK_NAME, pdf_export_page_size: CytoExportPageSizes = 'A4', ) -> None: - # target_folder = Path.cwd() / 'results' + """Cytoscape: export current selected view as image + + Parameters + ---------- + filename : str + export filename + filetype : CytoExportFileTypes, optional + export filetype supported by Cytoscape, by default 'SVG' + network_name : str, optional + network to export, by default CYTO_BASE_NETWORK_NAME + pdf_export_page_size : CytoExportPageSizes, optional + page size which should be used for PDF exports supported by Cytoscape, + by default 'A4' + """ + logger.debug('Exporting image to file...') target_folder = SAVE_PATH_FOLDER if not target_folder.exists(): target_folder.mkdir(parents=True) @@ -70,6 +120,7 @@ def export_network_to_image( export_text_as_font=text_as_font, page_size=pdf_export_page_size, ) + logger.debug('Exporting image to file successful.') def layout_network( @@ -77,15 +128,52 @@ def layout_network( layout_properties: CytoLayoutProperties = CYTO_LAYOUT_PROPERTIES, network_name: str = CYTO_BASE_NETWORK_NAME, ) -> None: + """Cytoscape: apply a supported layout algorithm to currently selected + network + + Parameters + ---------- + layout_name : CytoLayouts, optional + layout algorithm supported by Cytoscape (name of the CyREST API, does not + necessarily match the name in the Cytoscape UI), + by default CYTO_LAYOUT_NAME + layout_properties : CytoLayoutProperties, optional + configuration of parameters for the given layout algorithm, by default CYTO_LAYOUT_PROPERTIES + network_name : str, optional + network to apply the layout algorithm on, by default CYTO_BASE_NETWORK_NAME + """ + logger.debug('Applying layout to network...') p4c.set_layout_properties(layout_name, layout_properties) p4c.layout_network(layout_name=layout_name, network=network_name) p4c.fit_content(selected_only=False, network=network_name) + logger.debug('Layout application to network successful.') def apply_style_to_network( + style_name: str = CYTO_STYLESHEET_NAME, pth_to_stylesheet: Path = CYTO_PATH_STYLESHEET, network_name: str = CYTO_BASE_NETWORK_NAME, ) -> None: + """Cytoscape: apply a chosen Cytoscape style to the defined network + + Parameters + ---------- + style_name : str, optional + Cytoscape name of the style which should be applied, + by default CYTO_STYLESHEET_NAME + pth_to_stylesheet : Path, optional + path where the stylesheet definition in Cytoscape's XML format can + be found, + by default CYTO_PATH_STYLESHEET + network_name : str, optional + network to apply the style on, by default CYTO_BASE_NETWORK_NAME + + Raises + ------ + FileNotFoundError + if provided stylesheet can not be found under the provided path + """ + logger.debug('Applying style to network...') styles_avail = cast(list[str], p4c.get_visual_style_names()) if CYTO_STYLESHEET_NAME not in styles_avail: if not pth_to_stylesheet.exists(): @@ -96,15 +184,36 @@ def apply_style_to_network( ) p4c.import_visual_styles(str(pth_to_stylesheet)) - p4c.set_visual_style(CYTO_STYLESHEET_NAME, network=network_name) + p4c.set_visual_style(style_name, network=network_name) time.sleep(1) # if not waited image export could be without applied style p4c.fit_content(selected_only=False, network=network_name) + logger.debug('Style application to network successful.') def get_subgraph_node_selection( network_name: str = CYTO_BASE_NETWORK_NAME, property_degree_weighted: str = PROPERTY_NAME_DEGREE_WEIGHTED, + num_subgraphs: int = CYTO_NUMBER_SUBGRAPHS, ) -> list[CytoNodeID]: + """Cytoscape: obtain the relevant nodes for iterative subgraph generation + + Parameters + ---------- + network_name : str, optional + network to retrieve the nodes from, by default CYTO_BASE_NETWORK_NAME + property_degree_weighted : str, optional + property name which contains the weighted degree, + by default PROPERTY_NAME_DEGREE_WEIGHTED + num_subgraphs : int, optional + number of relevant nodes which form the basis to generate subgraphs from, + by default CYTO_NUMBER_SUBGRAPHS + + Returns + ------- + list[CytoNodeID] + list containing all relevant Cytoscape nodes + """ + logger.debug('Selecting nodes for subgraph generation...') node_table = p4c.get_table_columns(network=network_name) node_table['stress_norm'] = node_table['Stress'] / node_table['Stress'].max() node_table[CYTO_SELECTION_PROPERTY] = ( @@ -113,22 +222,42 @@ def get_subgraph_node_selection( * node_table['stress_norm'] ) node_table = node_table.sort_values(by=CYTO_SELECTION_PROPERTY, ascending=False) - node_table_choice = node_table.iloc[:CYTO_NUMBER_SUBGRAPHS, :] + node_table_choice = node_table.iloc[:num_subgraphs, :] + logger.debug('Selection of nodes for subgraph generation successful.') return node_table_choice['SUID'].to_list() def select_neighbours_of_node( node: CytoNodeID, + neighbour_iter_depth: int = CYTO_ITER_NEIGHBOUR_DEPTH, network_name: str = CYTO_BASE_NETWORK_NAME, ) -> None: + """Cytoscape: iterative selection of a node's neighbouring nodes and + their connecting edges + + Parameters + ---------- + node : CytoNodeID + node which neighbours should be selected + neighbour_iter_depth : int, optional + indicates how many levels of neighbours should be choosen, e.g. 1 --> only + first-level neighbours are considered which are directly connected to the node, + 2 --> all nodes with iteration depth of 1 are chosen and additionally their + direct neighbours, + by default CYTO_ITER_NEIGHBOUR_DEPTH + network_name : str, optional + network to perform action on, by default CYTO_BASE_NETWORK_NAME + """ + logger.debug('Selecting node neighbours for %s...', node) p4c.clear_selection(network=network_name) p4c.select_nodes(node, network=network_name) - for _ in range(CYTO_ITER_NEIGHBOUR_DEPTH): + for _ in range(neighbour_iter_depth): _ = p4c.select_first_neighbors(network=network_name) _ = p4c.select_edges_connecting_selected_nodes() + logger.debug('Selection of node neighbours for %s successful.', node) def make_subnetwork( @@ -136,6 +265,19 @@ def make_subnetwork( network_name: str = CYTO_BASE_NETWORK_NAME, export_image: bool = True, ) -> None: + """Cytoscape: generate a new subnetwork based on the currently + selected nodes and edges + + Parameters + ---------- + index : int + id-like property to identify the subnetwork relative to its parent + network_name : str, optional + network to generate subnetwork from, by default CYTO_BASE_NETWORK_NAME + export_image : bool, optional + trigger image export of newly generated subnetwork, by default True + """ + logger.debug('Generating subnetwork with index %d...', index) subnetwork_name = network_name + f'_sub_{index+1}' p4c.create_subnetwork( nodes='selected', @@ -146,14 +288,33 @@ def make_subnetwork( p4c.set_current_network(subnetwork_name) p4c.fit_content(selected_only=False, network=subnetwork_name) if export_image: + time.sleep(1) export_network_to_image(filename=subnetwork_name, network_name=subnetwork_name) + logger.debug('Generation of subnetwork with index %d successful.', index) + def build_subnetworks( nodes_to_analyse: Iterable[CytoNodeID], network_name: str = CYTO_BASE_NETWORK_NAME, export_image: bool = True, ) -> None: + """Cytoscape: iteratively build subnetworks from a collection of nodes + and their respective neighbouring nodes + + Parameters + ---------- + nodes_to_analyse : Iterable[CytoNodeID] + collection of nodes to make subnetworks from, for each node a dedicated + subnetwork will be generated + network_name : str, optional + network which contains the provided nodes, + by default CYTO_BASE_NETWORK_NAME + export_image : bool, optional + trigger image export of newly generated subnetworks, by default True + """ + logger.debug('Generating all subnetworks for node selection...') for idx, node in enumerate(nodes_to_analyse): select_neighbours_of_node(node=node, network_name=network_name) make_subnetwork(index=idx, network_name=network_name, export_image=export_image) + logger.debug('Generation of all subnetworks for node selection successful.') diff --git a/test-notebooks/misc.ipynb b/test-notebooks/misc.ipynb index a1a04ad..b9b554b 100644 --- a/test-notebooks/misc.ipynb +++ b/test-notebooks/misc.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "id": "af118d77-d87a-4687-be5b-e810a24c403e", "metadata": {}, "outputs": [ @@ -21,7 +21,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-07-17 16:02:39 +0000 | io:INFO | Loaded TOML config file successfully.\n" + "2024-07-19 05:54:50 +0000 | io:INFO | Loaded TOML config file successfully.\n" ] }, { @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "id": "4256081a-6364-4e8f-8cfd-799912ca6b94", "metadata": {}, "outputs": [], @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "id": "e9a92ad6-5e63-49c4-b9e7-9f81da8549fe", "metadata": {}, "outputs": [], @@ -90,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "id": "c2421d89-ed8c-41dd-b363-ad5b5b716704", "metadata": {}, "outputs": [ @@ -98,7 +98,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-07-17 16:02:46 +0000 | io:INFO | Loaded file successfully.\n" + "2024-07-19 05:54:58 +0000 | io:INFO | Loaded file successfully.\n" ] } ], @@ -167,7 +167,7 @@ { "data": { "text/plain": [ - "{}" + "{'degree_weighted': 186350}" ] }, "execution_count": 9, @@ -181,15 +181,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "8d36d22e-73fd-44fe-ab08-98f8186bc6b2", "metadata": {}, - "outputs": [], - "source": [] + "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": 10, + "execution_count": 11, "id": "1e61aca3-efea-4e38-8174-5ca4b2585256", "metadata": {}, "outputs": [], @@ -202,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "5d83c04c-03ab-4086-a4e9-ae430e4c6090", "metadata": {}, "outputs": [ @@ -210,7 +223,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-07-17 06:04:17 +0000 | io:INFO | Loaded file successfully.\n" + "2024-07-19 05:56:10 +0000 | io:INFO | Loaded file successfully.\n" ] } ], @@ -220,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "4718b54e-0891-4f70-8c67-90c439bc8bfd", "metadata": {}, "outputs": [], @@ -230,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "ddcb4ff0-eac4-45ba-9c6e-83ada4b0276c", "metadata": {}, "outputs": [ @@ -240,7 +253,7 @@ "TokenGraph(name: TokenGraph, number of nodes: 6859, number of edges: 25499)" ] }, - "execution_count": 13, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -251,17 +264,28 @@ }, { "cell_type": "code", - "execution_count": 25, - "id": "97c46ca7-ca9f-4d11-8d86-cfbd819b7573", + "execution_count": 15, + "id": "3d514552-3b55-41d1-af80-a1b559711608", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "tkg.rescaled_weights = False" + "tkg.rescaled_weights" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 16, "id": "b73844e0-4242-4a8c-b552-48f10df34cc0", "metadata": {}, "outputs": [], @@ -271,23 +295,23 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 17, "id": "593b9f87-4e9f-45e4-9367-55347924357b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'num_nodes': 6028,\n", - " 'num_edges': 17950,\n", + "{'num_nodes': 6859,\n", + " 'num_edges': 25499,\n", " 'min_edge_weight': 0.0952,\n", " 'max_edge_weight': 1.0,\n", - " 'node_memory': 382321,\n", - " 'edge_memory': 1005200,\n", - " 'total_memory': 1387521}" + " 'node_memory': 433996,\n", + " 'edge_memory': 1427944,\n", + " 'total_memory': 1861940}" ] }, - "execution_count": 28, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -298,23 +322,23 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 18, "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}" + "{'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": 29, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -325,23 +349,23 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 19, "id": "587de2ae-26ed-42f5-a8bd-104f9cbf1490", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'num_nodes': 6028,\n", - " 'num_edges': 17554,\n", + "{'num_nodes': 6859,\n", + " 'num_edges': 24796,\n", " 'min_edge_weight': 0.0952,\n", " 'max_edge_weight': 1.0,\n", - " 'node_memory': 382321,\n", - " 'edge_memory': 983024,\n", - " 'total_memory': 1365345}" + " 'node_memory': 433996,\n", + " 'edge_memory': 1388576,\n", + " 'total_memory': 1822572}" ] }, - "execution_count": 30, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -350,16 +374,6 @@ "get_graph_metadata(undirected)" ] }, - { - "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", @@ -377,7 +391,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 20, "id": "f381b25a-6149-4a2a-876c-4cbd8bb9bd04", "metadata": {}, "outputs": [ @@ -401,7 +415,7 @@ "source": [ "break_early = True\n", "i = 0\n", - "for n1, n2, w in Gtest.edges.data('weight'):\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", @@ -411,38 +425,7 @@ }, { "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, + "execution_count": 21, "id": "a7929935-3bd2-4eb8-907c-4d37251f11ea", "metadata": {}, "outputs": [ @@ -452,21 +435,21 @@ "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", + "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.9180999994277954\n" + "Vorgabe Wartungsplan 0.9181\n" ] } ], "source": [ "break_early = True\n", "i = 0\n", - "for n1, n2, w in Gtest.undirected.edges.data('weight'):\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", @@ -474,298 +457,6 @@ " 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,