Skip to content

198: Add network file import/export support for GraphML, GEXF, XGMML, CX2, DOT, and GML#1726

Open
glstott wants to merge 17 commits into
CDCgov:devfrom
glstott:198-graphml
Open

198: Add network file import/export support for GraphML, GEXF, XGMML, CX2, DOT, and GML#1726
glstott wants to merge 17 commits into
CDCgov:devfrom
glstott:198-graphml

Conversation

@glstott

@glstott glstott commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Adds support for network file import/export, addressing GH issue #198 . This branch adds a new GraphMLService that imports supported network document formats into MicrobeTrace nodes/links and exports the current session as GraphML.

Summary:

  • Adds import support for GraphML, GEXF, XGMML, Cytoscape CX2, DOT/Graphviz, and GML files.
  • Detects these files by extension/content and classifies them as Network files in the upload table.
  • Preserves topology, node/link attributes, labels, weights/distances, directions, coordinates/visual metadata where supported, and graph-level provenance.
  • Scopes imported edge origins by filename to avoid provenance collisions across multiple imported network files.
  • Adds readable field aliases for imported metadata, while retaining raw parser fields on records.
  • Adds a File menu action to export the active MicrobeTrace session as microbetrace.graphml.
  • Shows a Network Import Warnings dialog for unsupported or partially supported features such as nested GraphML graphs, ports, hyperedges, GEXF dynamic/hierarchy/viz metadata, CX2 fragments/status issues, and generated endpoint nodes.
  • Updates 2D link label handling so imported edge label fields can be selected and displayed without being overwritten by Cytoscape render labels.
  • Improves titleize formatting for imported snake/kebab-case fields and common network-format acronyms.
  • Adds Cypress fixtures and a new ingestion spec covering GraphML import/export plus GEXF, XGMML, CX2, DOT, and GML import behavior.
  • Extends Cypress file helpers with network MIME types and a network file datatype.

glstott added 8 commits June 30, 2026 11:53
(one graph, future state may allow for multiple graphs)
…ding partially supported graphml files. This creates a small error modal that appears upon ports, hypergraphs, etc.
…nd refactor to keep changes to file input instead of per-visualization normalization of the labels from metadata.
Comment thread src/app/filesComponent/files-plugin.component.ts Fixed
glstott added 6 commits July 6, 2026 08:01
This is more prevalent for network files due to standardized naming conventions, but potentially present in all input file types. The solution is to auto-rename/normalize these reference names so they don't collide with internal variable names.
@glstott

glstott commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

I reverted the label collision changes to move to another branch, keeping this one as solely network file import/export.

glstott and others added 3 commits July 15, 2026 10:37
# Conflicts:
#	src/app/filesComponent/files-plugin.component.ts
#	src/app/microbe-trace-next-plugin.component.ts
@glstott

glstott commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator Author

No failed cypress tests, ready for merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants