Download SNAP

Download the latest version

Download the C++ source code of the SNAP library:

SNAP 1.8 (Dec 31, 2011)

SNAP is distributed under the BSD license.

Download NodeXL which is a graphical front-end that integrates network analysis and SNAP into Microsoft Office and Excel. Using NodeXL, users without programming skills can make use of elements of the SNAP.

SNAP tutorial

Short tutorial on how to use SNAP.

SNAP directory structure

The file contains the following directory structure:

Example applications

Functionality of SNAP library

Brief description of functionality implemented in various files of SNAP library (directory SnapLib):

FileDescription
alg.hSimple algorithms like counting node degrees, simple graph manipulation (adding/deleting self edges, deleting isolated nodes) and testing whether graph is a tree or a star
anf.hApproximate Neighborhood Function: linear time algorithm to approximately calculate the diameter of massive graphs
arxiv.hFunctions for parsing Arxiv data and standardizing author names
bfsdfs.hAlgorithms based on Breath First Search (BFS) and Depth First Search (DFS): shortest paths, spanning trees, graph diameter, and similar
bignet.hMemory efficient implementation of a network with data on nodes. Use when working with very large networks.
cmty.hAlgorithsm for network community detection: Modularity, Girvan-Newman, Clauset-Newman-Moore
centr.hNode centrality measures: closeness, betweenness, PageRank, ...
cliques.hMaximal clique detection and Clique Percolation method.
cncom.hConnected components: weakly, strongly and bi connected components, articular nodes and bridge edges
dblp.hParser for XML dump of DBLP data
ff.hForest Fire model for generating networks that densify and have shrinking diameters
gbase.hDefines flags that are used to identify functionality of graphs
ggen.hVarious graph generators: random graphs, copying model, preferential attachment, RMAT, configuration model, Small world model
ghash.hHash table with directed graphs (TNGraph) as keys. Uses efficient adaptive approximate graph isomorphism testing to scale to large graphs. Useful when one wants to count frequencies of various small subgraphs or cascades.
gio.hGraph input output. Methods for loading and saving various textual and XML based graph formats: Pajek, ORA, DynNet, GraphML (GML), Matlab
graph.hImplements graph types TUNGraph, TNGraph and TNEGraph
gstat.hComputes many structural properties of static and evolving networks.
gsvd.hEigen and singular value decomposition of graph adjacency matrix
gviz.hInterface to GraphViz.
imdbnet.hActors-to-movies bipartite network of IMDB.
kcore.hK-core decomposition of networks
kronecker.hKronecker Graph generator and KronFit algorithm for estimating parameters of Kronecker graphs
ncp.hNetwork community profile plot. Implements local spectral graph partitioning method to efficiently find communities in networks
network.hImplements network types TNodeNet, TNodeEDatNet and TNodeEdgeNet
signnet.hNetworks with signed (+1, -1) edges that can denote trust/distrust between the nodes of the network
subgraphenum.hSub-graph enumeration and network motif computations
sir.h SIR epidemic model and SIR parameter estimation
Snap.hMain include file of the library
spinn3r.hPast parser for loading blog post data from Spinn3r
statplot.hPlots of various structural network properties: clustering, degrees, diameter, spectrum, connected components
subgraph.hExtracting subgraphs and converting between different graph/network types
timenet.hTemporally evolving networks
trawling.hAlgorithm of extracting bipartite cliques from the network
triad.h Functions for counting triads (triples of connected nodes in the network) and computing clustering coefficient
util.hUtilities to manipulate PDFs, CDFs and CCDFs. Quick and dirty string manipulation, URL and domain manipulation routines
wgtnet.hWeighted networks
wikinet.hNetworks based on Wikipedia

Current and previous releases of the SNAP library are available here.