Last updated: December 13th, 2022
The Cytoscape Exchange (CX) is a flexible network exchange format, for transmission of networks. While it is designed for modularity, extensibility, and as a message payload in common REST protocols, it is not intended as an optimized format for use in applications or for storage.
CX is "aspect-oriented", meaning that different types of information about network elements are separated into types of modules ("aspects"). Each aspect type specifies a schema for the information that it contains, typically a set of elements where the elements for that aspect type also have a defined schema. There are design guidelines for dependencies between aspects; the most basic guideline is that dependencies should be simple and minimal.
The flexibility of CX enables straightforward strategies for lossless encoding of potentially any network. At the most basic level, this means that CX imposes very few restrictions: graphs can be cyclic or acyclic and edges are implicitly directed, but formats can choose annotations schemes to override this. CX does not, itself, make any commitment to a single “correct” model of biology or graphic markup scheme.
CX is designed to facilitate streaming, potentially reducing memory footprint burden on applications processing large CX networks. In particular, in a CX stream, the elements of each aspect are broken into fragments and the fragments can be transmitted in any order.
The first version of CX specification was released in 2015 and recently, we released version 2 (CX2). Use the links below to access the format specification.
If you are developing a new application, we strongly recommend you use CX2.