# GraphMLReader.jl **Repository Path**: amtech/GraphMLReader.jl ## Basic Information - **Project Name**: GraphMLReader.jl - **Description**: Read GraphML file to a MetaGraph - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-03-19 - **Last Updated**: 2023-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GraphMLReader.jl Read GraphML file to a MetaGraph. # What GraphMLRead.jl does? Step1: Read the xml file. Step2: Create a MetaGraph/MetDiGrap and add vertice in ascending order with `Int` vertice ID. Save the original id of the vertice to node attribute `:original_id`. Step3: Save vertice attribtes and edge attributes to MetaGraph/MetaGraph. # How to use Load GraphML file to a MetaGraph object ``` file_path = joinpath( "data/large_traffic_network.graphml" ) G = loadgraphml( file_path ) # return a MetaGraph object ``` Get the attributes of the nodes ``` node_fields(G) ``` Get the attribute of the edges ``` edge_fields(G) ``` Get the dict of the old id ``` ids = gmlid2metaid(G) #{od_id=>new_id, ...} ``` # benchmark of the shortest path ``` Test data: "data/large_traffic_network.graphml" Graph size, node number: 109,743 edge number: 379,474 ``` ### Shortest path speed | | networkx | LightGraphs.jl | StaticGraph.jl | |--- |--- |--- |--- | | Dijkstra Shortest path | 0.706s | 0.3538s | 0.0502s | | Speedup && networkx| 1 | 2.0X | 14.1X | ### Load data speed | | Python3+networkx | Julia1.4 + GraphMLReader | |--- |--- |--- | | Load data | 9.77s | 12.03s |