JSON FORMAT
Cytoscape CX logo

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

File Extensions: .cx v1
FeatureCytoscape CX
Multiple Graphs per Document supported
Nodes supported
Directed Edges supported
Hyperedges not supported
Mixed-directionality Edges not supported
Parallel Edges supported
Self-loops supported
Edges on Edges not supported
Nested Graphs in Edges not supported
Nested Graphs in Graphs supported
Node Labels supported
Edge Labels partial
Attributes on Nodes supported
Attributes on Edges supported
Attributes on Graphs supported
Typed Edges supported

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.