Sparse6 (.s6)


    sparse6 graph data format.
    Used for storing undirected graphs.
    ASCII format.
    Stores connectivity information for multiple undirected graphs.
    Suitable for large sparse graphs; stores up to vertices.
    Related to graph6, which is optimized for small graphs or large, dense graphs.
    Developed by Brendan McKay at the Australian National University.

Import and Export

  • Import["file.s6"] imports the graphs stored in the specified file, given as a single Graph object or a list of graphs.
  • Export["file.s6",expr] exports an adjacency matrix or edge information for one graph, or multiple graphs to the sparse6 format.
  • Import["file.s6",elem] imports the specified element from a sparse6 file.
  • Import["file.s6",{elem,suba,subb,}] imports a subelement.
  • Import["file.s6",{{elem1,elem2,}}] imports multiple elements.
  • The import format can be specified with Import["file","Sparse6"] or Import["file",{"Sparse6",elem,}].
  • Export["file.s6",expr,elem] creates a sparse6 file by treating expr as specifying element elem.
  • Export["file.s6",{expr1,expr2,},{{elem1,elem2,}}] treats each expri as specifying the corresponding elemi.
  • Export["file.s6",expr,opt1->val1,] exports expr with the specified option elements taken to have the specified values.
  • Export["file.s6",{elem1->expr1,elem2->expr2,},"Rules"] uses rules to specify the elements to be exported.
  • See the reference pages for full general information on Import and Export.
  • ImportString and ExportString support the sparse6 format.


  • General Import elements:
  • "Elements"list of elements and options available in this file
    "Rules"full list of rules for each element and option
    "Options"list of rules for options, properties, and settings
  • Data representation elements:
  • "AdjacencyMatrix"edge information for all graphs in this file, given as a list of matrices
    "EdgeRules"connectivity data for all graphs, given as an array of rules
    "Graph"first graph stored in the file, given as a Graph object
    "Graphics"first graph stored in the file, rendered as a graph plot
    "GraphicsList"all graphs, given as a list of graphics objects
    "GraphList"all graphs given as a list of Graph objects
    "VertexCount"number of vertices in each graph, given as a list of integers
    "VertexList"list of integers representing the vertices
  • Import by default uses "Graph" for simple sparse6 files and "GraphList" for multi-graph sparse6 files.
  • Element specifications for sparse6 files containing multiple graphs:
  • elem,ndata representation element elem for the n^(th) graph in this file
    elem,{n1,n2,}element elem for graphs n1,n2,
    elem,Allelement elem for all graphs, given as a list
  • Import["file.s6","GraphList"] gives a list of all graphs in the file, rendered as a Graph object.
  • Import["file.s6",{"GraphList",n}] gives a rendering of the n^(th) graph in the file.
  • When importing a sparse6 file using the "EdgeRules" element, no rules are returned for possible unconnected vertices.
  • Graphs including unconnected vertices can be fully specified using the "AdjacencyMatrix" element, or as a combination of "EdgeRules" and "VertexCount".



Basic Examples  (5)

Import a sparse6 example file, giving a visual representation:

Click for copyable input

Read the adjacency matrix of the above example and render it as MatrixPlot:

Click for copyable input

Export a Graph object to the sparse6 format:

Click for copyable input

Export the adjacency matrix of a graph to the sparse6 format:

Click for copyable input

Export edge rules:

Click for copyable input

See Also

"Graph6"  "GraphML"  "GXL"

Introduced in 2007
| Updated in 2010