The SNAP package contains the following directories:

`snap-core:`the core SNAP graph library;`snap-adv:`advanced SNAP components, not in the core, but used by examples;`snap-exp:`experimental SNAP components, still in development;`examples:`small sample applications that demonstrate SNAP functionality;`tutorials:`simple programs, demonstrating use of various classes;`glib-core:`STL-like library that implements basic data structures, like vectors (`TVec`), hash-tables (`THash`) and strings (`TStr`), provides serialization and so on;`test:`unit tests for various classes;`doxygen:`SNAP reference manuals.

**agmfit:**Detects network communities from a given network by fitting the Affiliation Graph Model (AGM) to the given network by maximum likelihood estimation.**agmgen:**Implements the Affiliation Graph Model (AGM). AGM generates a realistic looking graph from the community affiliation of the nodes.**bigclam:**Formulates community detection problems into non-negative matrix factorization and discovers community membership factors of nodes.**cascadegen:**Identifies cascades in a list of events.**cascades:**Simulates a SI (susceptible-infected) model on a network and computes structural properties of cascades.**centrality:**Computes node centrality measures for a graph: closeness, eigen, degree, betweenness, page rank, hubs and authorities.**cesna:**Implements a large scale overlapping community detection method for networks with node attributes based on Communities from Edge Structure and Node Attributes (CESNA).**circles:**Implements a method for identifying users social circles.**cliques:**Finds overlapping dense groups of nodes in networks, based on the Clique Percolation Method.**coda:**Implements a large scale overlapping community detection method based on Communities through Directed Affiliations (CoDA), which handles directed as well as undirected networks. The method is able to find 2-mode communities where the member nodes form a bipartite connectivity structure.**community:**Implements network community detection algorithms: Girvan-Newman, Clauset-Newman-Moore and Infomap.**concomp:**Computes weakly, strongly and biconnected connected components, articulation points and bridge edges of a graph.**flows:**Computes the maximum network flow in a network.**forestfire:**Generates graphs using the Forest Fire model.**graphgen:**Generates undirected graphs using one of the many SNAP graph generators.**graphhash:**Demonstrates the use of`TGHash`graph hash table, useful for counting frequencies of small subgraphs or information cascades.**infopath:**Implements stochastic algorithm for dynamic network inference from cascade data, see Structure and Dynamics of Information Pathways in On-Line Media**kcores:**Computes the k-core decomposition of the network and plots the number of nodes in a k-core of a graph as a function of k.**kronem:**Estimates Kronecker graph parameter matrix using EM algorithm.**kronfit:**Estimates Kronecker graph parameter matrix.**krongen:**Generates Kronecker graphs.**lshtest:**Implements locality sensitive hashing.**magfit:**Estimates Multiplicative Attribute Graph (MAG) model parameter.**maggen:**Generates Multiplicative Attribute Graphs (MAG).**mkdatasets:**Demonstrates how to load different kinds of networks in various network formats and how to compute various statistics of the network.**motifcluster:**Implements a spectral method for motif-based clustering.**motifs:**Counts the number of occurence of every possible subgraph on K nodes in the network.**ncpplot:**Plots the Network Community Profile (NCP).**netevol:**Computes properties of an evolving network, like evolution of diameter, densification power law, degree distribution, etc.**netinf:**Implements netinf algorithm for network inference from cascade data, see Inferring Networks of Diffusion and Influence**netstat:**Computes structural properties of a static network, like degree distribution, hop plot, clustering coefficient, distribution of sizes of connected components, spectral properties of graph adjacency matrix, etc.**randwalk:**Computes Personalized PageRank between pairs of nodes.**rolx:**Implements the rolx algorithm for analysing the structural roles in the graph.**testgraph:**Demonstrates some of the basic SNAP functionality.**zygote:**Demonstrates how to use SNAP with the Zygote library, which significantly speeds up computations that need to process the same large graph many times.

Brief description of SNAP functionality implemented in various files in the distribution package:

snap-core | |
---|---|

alg.h | Simple 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.h | Approximate Neighborhood Function: linear time algorithm to approximately calculate the diameter of massive graphs. |

attr.h | Class for sparse attributes TAttr and supporting classes. |

bfsdfs.h | Algorithms based on Breath First Search (BFS) and Depth First Search (DFS): shortest paths, spanning trees, graph diameter, and similar. |

bignet.h | Memory efficient implementation of a network with data on nodes. Use when working with very large networks. |

casc.h | Functions for building cascades from a list of events. |

centr.h | Node centrality measures: closeness, betweenness, PageRank, ... |

cmty.h | Algorithms for network community detection: Modularity, Girvan-Newman, Clauset-Newman-Moore. |

cncom.h | Connected components: weakly, strongly and biconnected components, articular nodes and bridge edges. |

conv.h | Conversion functions from relational tables to graphs and networks. |

ff.h | Forest Fire model for generating networks that densify and have shrinking diameters. |

flow.h | Maximum flow algorithms. |

gbase.h | Defines flags that are used to identify functionality of graphs. |

ggen.h | Various graph generators: random graphs, copying model, preferential attachment, RMAT, configuration model, Small world model. |

ghash.h | Hash 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.h | Graph input output. Methods for loading and saving various textual and XML based graph formats: Pajek, ORA, DynNet, GraphML (GML), Matlab. |

graph.h | Implements graph classes TUNGraph, TNGraph, TNEGraph, and TBPGraph. |

graphmp.h | Implements graph classes with support for fast multi-threaded operations TNGraphMP. |

gstat.h | Computes many structural properties of static and evolving networks. |

gsvd.h | Eigen and singular value decomposition of graph adjacency matrix. |

gviz.h | Interface to Graphviz. |

kcore.h | K-core decomposition of networks. |

mmnet.h | Implements multimodal network class TMMNet and supporting classes TModeNet and TCrossNet. |

network.h | Implements network classes TNodeNet, TNodeEDatNet, TNodeEdgeNet, TNEANet, TUndirNet, and TDirNet. |

networkmp.h | Implements network classes with support for fast multi-threaded operations TNEANetMP. |

numpy.h | Conversion functions between SNAP and numpy types. |

randwalk.h | Personalized PageRank. |

Snap.h | Main include file of the library. |

statplot.h | Plots of various structural network properties: clustering, degrees, diameter, spectrum, connected components. |

subgraph.h | Extracting subgraphs and converting between different graph and network classes. |

table.h | Implements relational table class TTable. |

timenet.h | Temporally evolving networks. |

triad.h | Functions for counting triads (triples of connected nodes in the network) and computing clustering coefficient. |

util.h | Utilities to manipulate PDFs, CDFs and CCDFs. Quick and dirty string manipulation, URL and domain manipulation routines. |

snap-adv | |

agm*.h | Implementation of the Affiliation Graph Model (AGM). |

cascdynetinf.h | Dynamic network inference from cascade data (infopath). |

cascnetinf.h | Network inference from cascade data (netinf). |

circles.h | Identifying users social circles. |

cliques.h | Maximal clique detection and Clique Percolation method. |

graphcounter.h | Performs fast graph isomorphism testing to count the frequency of topologically distinct sub-graphs. |

kronecker.h | Kronecker Graph generator and KronFit algorithm for estimating parameters of Kronecker graphs. |

mag.h | Implements the Multiplicative Attribute Graph (MAG). |

motifcluster.h | A spectral method for motif-based clustering. |

ncp.h | Network community profile plot. Implements local spectral graph partitioning method to efficiently find communities in networks. |

rolx.h | Node role detection. |

subgraphenum.h | Sub-graph enumeration and network motif computations. |

snap-exp | |

arxiv.h | Functions for parsing Arxiv data and standardizing author names. |

dblp.h | Parser for XML dump of DBLP data. |

imdbnet.h | Actors-to-movies bipartite network of IMDB. |

mxdag.h | Finds the maximum directed-acyclic subgraph of a given directed graph. |

signnet.h | Networks with signed (+1, -1) edges that can denote trust/distrust between the nodes of the network. |

sir.h | SIR epidemic model and SIR parameter estimation. |

spinn3r.h | Past parser for loading blog post data from Spinn3r. |

trawling.h | Algorithm of extracting bipartite cliques from the network. |

wgtnet.h | Weighted networks. |

wikinet.h | Networks based on Wikipedia. |