Cytoscape CX
Cytoscape CX (Cytoscape Exchange Format, version 1) is a JSON-based network interchange format released in 2015 by the NDEx project in collaboration with the Cytoscape Consortium. It was designed to move networks between the NDEx repository (NDEx) and the Cytoscape desktop application (Cytoscape) while preserving both graph structure and visual styling, and it has since been adopted by other biological-network tools. Crucially, CX is a transmission format rather than an application or storage format: the specification explicitly states it is not intended to be an optimized runtime or on-disk representation, trading efficiency and compression for interoperability and streamability.
The defining characteristic of CX is its aspect-oriented model. A CX document is a JSON array of "aspect fragments," where each aspect is a self-describing module with its own schema: core aspects include nodes and edges, plus nodeAttributes, edgeAttributes and networkAttributes for name-value annotations, cartesianLayout for coordinates, and cyVisualProperties for styling. Elements are cross-referenced by unique integer IDs rather than by nesting, so an attribute or layout entry points at the node or edge it describes via that ID. Nodes carry mandatory integer IDs and optional names; edges specify source and target node IDs and an optional interaction type, and are treated as implicitly directed. The stream is framed by pre-metadata, the aspect fragments (which may arrive in any order), post-metadata, and a trailing status aspect, which enables incremental, low-memory processing of large networks.
CX imposes few semantic restrictions: graphs may be cyclic or acyclic and no biological commitment is baked in, making it a general graph carrier. Its extensibility allows communities to define custom aspects; NDEx-specific aspects handle provenance and aliases, while Cytoscape-specific "cy" aspects encode subnetworks, groups, table columns and visual properties. This flexibility comes at the cost of verbosity and redundancy, and the ID-referencing indirection makes CX harder to read or hand-edit than nested formats such as Cytoscape JSON or GraphML.
CX version 1 has largely been superseded by Cytoscape CX2 (CX2, released 2018), which the NDEx documentation now recommends for new applications; a subset used for hierarchical models is HCX. Tooling includes the reference RCX R package (RCX) and NDEx client libraries, and Cytoscape can import and export CX directly.
Alternative Names: CX, Cytoscape Exchange
| Feature | Cytoscape CX |
|---|---|
| Multiple Graphs per Document | |
| Nodes | |
| Directed Edges | |
| Hyperedges | |
| Mixed-directionality Edges | |
| Parallel Edges | |
| Self-loops | |
| Edges on Edges | |
| Nested Graphs in Edges | |
| Nested Graphs in Graphs | |
| Node Labels | |
| Edge Labels | |
| Attributes on Nodes | |
| Attributes on Edges | |
| Attributes on Graphs | |
| Typed Edges | |
Tools(Read & Write)
Frequently Asked Questions
What is a Cytoscape CX file?
A Cytoscape CX file stores a graph — its nodes, edges and attributes — in the Cytoscape CX format (also: CX, Cytoscape Exchange). See the feature table above for what it supports.
How do I open a Cytoscape CX file?
Open it in a graph tool that supports Cytoscape CX, or convert it to a format your tool reads. With GraphInOut you can convert Cytoscape CX to GraphML, DOT, Connected JSON and more, right in your browser.
How do I convert a Cytoscape CX file to another format?
Use the Convert from Cytoscape CX link above: upload or paste your Cytoscape CX file (input preset to Cytoscape CX), choose a target format and download the result — free, no install.