Pointers to various network resources follow, including network datasets, analysis and visualization software; as well as other Network Science courses offering valuable material and readings. These could be helpful for your project, and hopefully for your research on networks down the road. I will be continuously updating the lists, so please let me know if you come across something worth adding.

Network datasets

Prominent researchers and institutions have been compiling valuable network datasets for use of the research community.

Network software

The sheer variety of software available for the study of large-scale graphs mirrors the number of communities involved in such work. While e.g., Matlab could be used to implement many of the network analysis algorithms studied in this class, efficiently dealing with large-scale network calls for custom-made graph analytics tools. Some useful network analysis and visualization software packages follow.

  • Stanford Network Analysis Platform (SNAP) is a general purpose, high performance system for analysis and manipulation of large networks. Snap.py is a Python interface for SNAP. To get going with SNAP, you can check the following tutorial.
  • NetworkX is probably the most popular Python language software package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. Other libraries offering similar functionalities, but likely faster and more scalable implementations are graph-tool, igraph (also in C and R), and NetworkKit.
  • PyTorch geometric is popular library for deep learning on graphs and other irregular structures, also known as geometric deep learning.
  • The Deep Graph Library is a recent package for graph neural networks and machine learning on graphs. It has the advantange of being framework agnostic (build models in PyTorch, TensorFlow or MXNet).
  • PyGSP: Graph Signal Processing in Python is a recent package for signal processing on graphs (e.g., implementing the graph Fourier transform, graph filters, graphs learning, signal interpolation and denoising). Leveraging these graphs signal processing fundamentals and intuitions, the Graph Neural Networks library offers PyTorch implementations. Spektral is a Tensorflow variant.
  • Brain Connectivity Toolbox is a MATLAB toolbox for complex-network analysis of structural and functional brain-connectivity data sets.
  • Pegasus is a peta-scale graph mining system, fully written in Java. It runs in parallel, distributed manner on top of Hadoop
  • JUNG -- the Java Universal Network/Graph Framework -- is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network.
  • The mfinder software package is network motif finding tool; see also their pointers to other related software.
  • yEd Graph Editor is a powerful desktop application that can be used to quickly and effectively generate high-quality diagrams.
  • Gephi is an open-source interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs.
  • Pajek is a freely available Windows-based package for the visualization of large networks.
  • Graphviz is open-source graph visualization software.
  • LaNet-vi is a large networks visualization tool based on the k-core decomposition of a graph.

Network Science courses

See below a few links to several other great Network Science-related classes. Note that depending on the background of the instructor, the focus could vary accordingly.