Network Analysis

Awesome Network Analysis ¶

An awesome list of resources to construct, analyze and visualize network data.

Inspired by Awesome Deep Learning, Awesome Math and others.

Network of U.S. political blogs by Adamic and Glance (2004) (preprint).

Note: searching for ‘@’ will return all Twitter accounts listed on this page.

Books¶

Dissemination¶

Accessible introductions aimed at non-technical audiences.

Conferences¶

Recurring conferences on network analysis.

Journals¶

Journals that are not fully open-access are marked as “gated”. Please also note that some of the publishers listed below are deeply hurting scientific publishing.

Professional Groups¶

Research Groups (USA)¶

Network-focused research centers, (reading) groups, institutes, labs – you name it – based in the USA.

Research Groups (Other)¶

Network-focused research centers, (reading) groups, institutes, labs – you name it – based outside of the USA.

Review Articles¶

Archeological and Historical Networks¶

See also the bibliographies by Claire Lemercier and Claire Zalc (section on ‘études structurales’), by the Historical Network Research Group, and by Tom Brughmans.

Social, Economic and Political Networks¶

See also the bibliographies by Eszter Hargittai, by Pierre François and by Pierre Mercklé.

Selected Papers¶

A voluntarily short list of applied, epistemological and methodological articles, many of which have become classic readings in network analysis courses. Intended for highly motivated social science students with little to no prior exposure to network analysis.

Software¶

For a hint of why this section of the list might be useful to some, see Mark Round’s Map of Data Formats and Software Tools (2009).
Several links in this section come from the NetWiki Shared Code page, from the Cambridge Networks Network List of Resources for Complex Network Analysis, and from the Software for Social Network Analysis page by Mark Huisman and Marijtje A.J. van Duijn. For a recent academic review on the subject, see the Social Network Algorithms and Software entry of the International Encyclopedia of Social and Behavioral Sciences, 2nd edition (2015).
See also the Social Network Analysis Project Survey (blog post), an earlier attempt to chart social network analysis tools that links to many commercial platforms not included in this list, such as Detective.io. The Wikipedia English entry on Social Network Analysis Software also links to many commercial that are often very expensive, outdated, and far from being awesome by any reasonable standard.
Software-centric tutorials are listed below their program of choice: other tutorials are listed in the next section.

Algorithms¶

Network placement and community detection algorithms that do not fit in any of the next subsections.
See also the Awesome Algorithms and Awesome Algorithm Visualization lists for more algorithmic awesomess.

C / C++¶

For more awesome C / C++ content, see the Awesome C and Awesome C / C++ lists.

Java¶

• GraphStream - Java library for the modeling and analysis of dynamic graphs.
• Mixer - Prototype showing how to use Apache Fluo to continuously merge multiple large graphs into a single derived one.

JavaScript¶

For more awesome JavaScript libraries, see the Awesome JavaScript list.

MATLAB¶

See also the webweb tool listed in the Python section.

Python¶

Many items below are from a Google spreadsheet by Michał Bojanowski and others.
See also Social Network Analysis with Python, a 3-hour tutorial by Maksim Tsvetovat and Alex Kouznetsov given at PyCon US 2012 (code).
For more awesome Python packages, see the Awesome Python and Awesome Python Books lists.

• dash-cytoscape - Interactive network visualization library in Python, powered by Cytoscape.js and Dash
• graph-tool - Python module for network manipulation and analysis, written mostly in C++ for speed.
• graphviz - Python renderer for the DOT graph drawing language.
• GraSPy - Python package for statistical algorithms, models, and visualization for single and multiple networks.
• hiveplot - Python utility for drawing networks as hive plots on matplotlib, a more comprehensive network visualization.
• karateclub - Python package for unsupervised learning on graph structured data with a scikit-learn like API.
• linkpred - Assess the likelihood of potential links in a future snapshot of a network.
• metaknowledge - Python package to turn bibliometrics data into authorship and citation networks.
• networkx - Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
• npartite - Python algorithms for community detection in n-partite networks.
• PyGraphistry - Python library to extract, transform, and visually explore big graphs.
• python-igraph - Python version of the igraph network analysis package.
• python-louvain - A solid implementation of Louvain community detection algorithm.
• Snap.py - A Python interface for SNAP (a general purpose, high performance system for analysis and manipulation of large networks).
• SnapVX - A convex optimization solver for problems defined on a graph.
• TQ (Temporal Quantities) - Python 3 library for temporal network analysis.
• webweb - MATLAB/Python library to produce interactive network visualizations with d3.js.

R¶

For more awesome R resources, see the Awesome R and Awesome R Books lists. See also this Google spreadsheet by Ian McCulloh and others.
To convert many different network model results into tidy data frames, see the broom package. To convert many different network model results into LaTeX or HTML tables, see the texreg package.

• amen - Additive and multiplicative effects models for relational data.
• backbone - Provides methods for binarizing a weighted network retaining only significant edges.
• Bergm - Tools to analyse Bayesian exponential random graph models (BERGM).
• bipartite - Functions to visualize bipartite (two-mode) networks and compute indices commonly used in ecological research. See also: levelnet R package.
• blockmodeling - Implementats generalized blockmodeling for valued networks.
• bnlearn - Tools for Bayesian network learning and inference (related Shiny app).
• brainGraph - Tools for performing graph theory analysis of brain MRI data.
• btergm - Tools to fit temporal ERGMs by bootstrapped pseudolikelihood. Also provides MCMC maximum likelihood estimation, goodness of fit for ERGMs, TERGMs, and stochastic actor-oriented models (SAOMs), and tools for the micro-level interpretation of ERGMs and TERGMs.
• CCAS - Statistical model for communication networks.
• concoR - Implementation of the CONCOR network blockmodeling algorithm (blog post).
• ContentStructure - Implements an extension to the Topic-Partitioned Multinetwork Embeddings (TPME) model.
• DiagrammeR - Connects R, RStudio and JavaScript libraries to draw graph diagrams (blog post).
• dodgr - Computes distances on dual-weighted directed graphs, such as street networks, using priority-queue shortest paths.
• ergm - Estimation of Exponential Random Graph Models (ERGM).
• GERGM - Estimation and diagnosis of the convergence of Generalized Exponential Random Graph Models (GERGM).
• geomnet - Single-geometry approach to network visualization with ggplot2.
• ggnetwork - Multiple-geometries approach to plot network objects with ggplot2.
• ggraph - Grammar of graph graphics built in the spirit of ggplot2. See also: tidygraph R package.
• graphlayouts - Layout algorithms based on the concept of stress majorization.
• hergm - Estimate and simulate hierarchical exponential-family random graph models (HERGM) with local dependence.
• hierformR – Determine paths and states that social networks develop over time to form social hierarchies.
• igraph - A collection of network analysis tools.
• influenceR - Compute various node centrality network measures by Burt, Borgatti and others.
• keyplayer - Implements several network centrality measures.
• latentnet - Latent position and cluster models for network objects.
• levelnet - Experimental package to analyze one-mode projections of bipartite (two-mode) networks. See also: bipartite R package.
• lpNet - Linear programming model aimed at infering biological (signalling, gene) networks.
• ndtv - Tools to construct animated visualizations of dynamic network data in various formats.
• neo4r - Neo4J driver for R.
• networkD3 - Create d3.js network graphs from R.
• netdiffuseR - Tools to analyze the network diffusion of innovations.
• netrankr - Up-to-date collection of network centrality indices, with lots of documentation.
• NetSim - Simulate and combine micro-models to research their impact on the macro-features of social networks.
• network - Basic tools to manipulate relational data in R.
• networkdata - Includes 979 network datasets containing 2135 networks.
• networkdiffusion - Simulate and visualize basic epidemic diffusion in networks.
• networkDynamic - Support for dynamic, (inter)temporal networks.
• networksis - Tools to simulate bipartite networksgraphs with the degrees of the nodes fixed and specified.
• PAFit - Nonparametric estimation of preferential attachment and node fitness in temporal complex networks.
• PCIT - Implements Partial Correlation with Information Theory in order to identify meaningful correlations in weighted networks, such as gene co-expression networks.
• RCy3 - Interface between R and recent versions of Cytoscape.
• RCyjs - Interface between R and Cytoscape.js.
• qgraph - Tools to model and visualize psychometric networks; also aimed at weighted graphical models).
• relevent - Tools to fit relational event models (REM).
• informR - Tools to create sequence statistics from event lists to be used in relevent.
• rem - Estimate endogenous network effects in event sequences and fit relational event models (REM), which measure how networks form and evolve over time.
• rgexf - Export network objects from R to GEXF for manipulation with software like Gephi or Sigma.
• Rgraphviz - Support for using the Graphviz library and its DOT graph drawing language from within R.
• RSiena - Simulation Investigation for Empirical Network Analysis; fits models to longitudinal network data.
• signnet Methods to analyse signed networks (structural balance, blockmodeling, centrality, etc.)
• sna - Basic network constructors, measures and visualization tools.
• snahelper - RStudio addin which provides a GUI to visualize and analyse networks
• SocialMediaLab - Tools for collecting social media data and generating networks from it (companion website, github repo).
• spectralGOF - Computes the spectral goodness of fit (SGOF), a measure of how well a network model explains the structure of an observed network.
• spnet - Methods for dealing with spatial social networks.
• statnet - The project behind many R network analysis packages (mailing-list, wiki).
• tergm - Fit, simulate and diagnose models for temporal exponential-family random graph models (TERGM).
• tidygraph - ‘Tidy’ approach to building graph structures. See also: ggraph R package.
• tnam - Tools to fit temporal and cross-sectional network autocorrelation models (TNAM).
• tnet - Network measures for weighted, two-mode and longitudinal networks.
• tsna - Tools for temporal social network analysis.
• visNetwork - Using vis.js library for network visualization.
• xergm - Extensions of exponential random graph models (ERGM, GERGM, TERGM, TNAM and REM).

Syntaxes¶

Generic graph syntaxes intended for use by several programs.

Tutorials¶

Tutorials that are not focused on a single specific software package or program.

Varia¶

Resources that do not fit in other categories.

Blog Series¶

Series of blog posts on network topics.

Fictional Networks¶

Explorations of fictional character networks.

Network Science¶

Discussions of what “netsci” is about and means for other scientific disciplines.

Small Worlds¶

Links focused on (analogues to) Stanley Milgram’s small-world experiment.

Two-Mode Networks¶

Also known as bipartite graphs.

License¶

To the extent possible under law, the authors of this list – by chronological order: François Briatte, Ian McCulloh, Aditya Khanna, Manlio De Domenico, Patrick Kaminski, Ericka Menchen-Trevino, Tam-Kien Duong, Jeremy Foote, Catherine Cramer, Andrej Mrvar, Patrick Doreian, Vladimir Batagelj, Eric C. Jones, Alden S. Klovdahl, James Fairbanks, Danielle Varda, Andrew Pitts, Roman Bartusiak, Koustuv Sinha, Mohsen Mosleh, Sandro Sousa, Jean-Baptiste Pressac, Patrick Connolly, Hristo Georgiev, Tiago Azevedo, Luis Miguel Montilla, Keith Turner, Sandra Becker, Benedek Rozemberczki, Xing Han Lu, Vincent Labatut, David Schoch and Jaewon Chung – have waived all copyright and related or neighboring rights to this work.

Thanks to Robert J. Ackland, Patrick Connolly, Michael Dorman, Colin Fay, Marc Flandreau, Eiko Fried, Christopher Steven Marcum, Wouter de Nooy, Katya Ognyanova, Camille Roth, Cosma Shalizi, Tom A.B. Snijders, Chris Watson and Tim A. Wheeler, who helped locating some of the awesome resources featured in this list.