# Social Network Analysis Software

# Open Source SNA Software

Social network analysis software generally uses network and graph theory to investigate social structures both analytically and visually. The main constructs are nodes (the entities we are interested in – typically people), and the ties or edges that connect them. Many of the products listed here are open source with a license that permits free use in commercial settings.

Cuttlefish is a network workbench application that visualizes the networks with some of the best known layout algorithms. It allows detailed visualizations of the network data, interactive manipulation of the layout, graph edition and process visualization as well as different input methods and outputs in tex using Tikz and PSTricks. It is developed by the Chair of Systems Design of ETH Zürich , a research group that applies a complex system approach to investigate economic and social networks.

Cytoscape is an open source software platform for visualizing complex networks and integrating these with any type of attribute data. A lot of Apps are available for various kinds of problem domains, including bioinformatics, social network analysis, and semantic web.

Gephi is an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs. It runs on Windows, Linux and Mac OS X. Gephi is open-source and free. It supports all types of networks – directed, undirected and mixed, and is capable of handling very large network graphs of up to one million nodes. Various metrics are supported including betweenness, closeness, diameter, clustering coefficient, average shortest path, pagerank and HITS. Dynamic filtering allows edges and/or nodes to be selected based on network structure or data. Ideal for social network analysis, link analysis and biological network analysis. Perhaps the most advanced of the open source tools.

Graph-tool is an efficient Python module for manipulation and statistical analysis of graphs (a.k.a. networks). Contrary to most other python modules with similar functionality, the core data structures and algorithms are implemented in C++, making extensive use of template metaprogramming, based heavily on the Boost Graph Library. This confers it a level of performance that is comparable (both in memory usage and computation time) to that of a pure C/C++ library. Graph-tool has its own layout algorithms and versatile, interactive drawing routines based on cairo and GTK+, but it can also work as a very comfortable interface to the excellent graphviz package.

GraphChi can run very large graph computations on just a single machine, by using a novel algorithm for processing the graph from disk (SSD or hard drive). Programs for GraphChi are written in the vertex-centric model, proposed by GraphLab and Google’s Pregel. GraphChi runs vertex-centric programsasynchronously (i.e changes written to edges are immediately visible to subsequent computation), and in parallel. GraphChi also supports streaming graph updates and removal of edges from the graph. The promise of GraphChi is to bring web-scale graph computation, such as analysis of social networks, available to anyone with a modern laptop.

Graphviz is open source graph visualization software representing structural information as diagrams of abstract graphs and networks. The Graphviz layout programs take descriptions of graphs in a simple text language, and make diagrams in useful formats, such as images and SVG for web pages; PDF or Postscript for inclusion in other documents; or display in an interactive graph browser. Graphviz has many useful features for concrete diagrams, such as options for colors, fonts, tabular node layouts, line styles, hyperlinks, and custom shapes.

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. It is written in Java, which allows JUNG-based applications to make use of the extensive built-in capabilities of the Java API, as well as those of other existing third-party Java libraries.

The JUNG architecture is designed to support a variety of representations of entities and their relations, such as directed and undirected graphs, multi-modal graphs, graphs with parallel edges, and hypergraphs. It provides a mechanism for annotating graphs, entities, and relations with metadata. This facilitates the creation of analytic tools for complex data sets that can examine the relations between entities as well as the metadata attached to each entity and relation.

libSNA is an open-source library for Social Network Analysis, licensed under the LGPL. This library is under active development by Abe Usher in hopes that it will serve as a catalyst for improving the field of Social Network Analysis.

- Easy to use Python API
- Flexible data import options
- Scalable
- Built-in reports
- Built-in data export capabilities
- Open source – easily extended
- Fast processing time (efficient use of graph algorithms)

MeerKat is suitable for many types of network analysis, including social networks. If provides filtering mechanisms, interactive editing, support for dynamic networks, various metrics and automatically detects communities.

- network visualization with multiple layouts
- interactive network editing
- support for dynamic networks (multiple timeframes)
- network filtering
- computes different measures of centrality (network metrics and statistics)
- automatically detects communities (community mining)
- shows community dynamics in time (community event analysis and visualization)

Netlytic is a cloud-based text analyzer and social networks visualizer. Netlytic can automatically summarize large volumes of text and discover and visualize social networks from conversations on social media sites such as Twitter, Youtube, blog comments, online forums and chats. It is designed to help researchers and others to understand an online group’s operation, identify key and influential constituents, and discover how information and other resources flow in a network.

NetworKit is a growing open-source toolkit for high-performance network analysis. NetworKit is a Python module. It implements efficient graph algorithms, many of them parallel to utilise multicore architectures. These are meant to compute standard measures of network analysis, such as degree sequences, clustering coefficients and centrality.High-performance algorithms are written in C++ and exposed to Python via the Cython toolchain.

NetworkX is a Python language software package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. Features include:

- Python language data structures for graphs, digraphs, and multigraphs.
- Many standard graph algorithms
- Network structure and analysis measures
- Generators for classic graphs, random graphs, and synthetic networks
- Nodes can be “anything" (e.g. text, images, XML records)
- Edges can hold arbitrary data (e.g. weights, time-series)

NodeXL is a free, open-source template for Microsoft® Excel® 2007, 2010 and 2013 that makes it easy to explore network graphs. With NodeXL, you can enter a network edge list in a worksheet, click a button and see your graph, all in the familiar environment of the Excel window.

Flexible Import and Export Import and export graphs in GraphML, Pajek, UCINet, and matrix formats.

Direct Connections to Social Networks Import social networks directly from Twitter, YouTube, Flickr and email, or use one of several available plug-ins to get networks from Facebook, Exchange, Wikis and WWW hyperlinks.

Zoom and Scale Zoom into areas of interest, and scale the graph’s vertices to reduce clutter.

Flexible Layout Use one of several “force-directed" algorithms to lay out the graph, or drag vertices around with the mouse. Have NodeXL move all of the graph’s smaller connected components to the bottom of the graph to focus on what’s important.

Easily Adjusted Appearance Set the colour, shape, size, label, and opacity of individual vertices by filling in worksheet cells, or let NodeXL do it for you based on vertex attributes such as degree, betweenness centrality or PageRank.

Dynamic Filtering Instantly hide vertices and edges using a set of sliders—hide all vertices with degree less than five, for example.

Powerful Vertex Grouping Group the graph’s vertices by common attributes, or have NodeXL analyse their connectedness and automatically group them into clusters. Make groups distinguishable using shapes and colour, collapse them with a few clicks, or put each group in its own box within the graph. “Bundle" intergroup edges to make them more manageable.

Graph Metric Calculations Easily calculate degree, betweenness centrality, closeness centrality, eigenvector centrality, PageRank, clustering coefficient, graph density and more.

Task Automation Perform a set of repeated tasks with a single click.

Pajek – suite of programs for analysis and visualization of very large networks.

R is a general purpose analytics software, but several libraries are available for social network analysis. These include degreenet, RSeina, PAFit, igraph, sna network, tnet, ergm, Bergm, hergm, latentnet and networksis. Each provides specialized functionality and for people familiar with R represent a rich set of resources.

Social Networks Visualizer (SocNetV) is a cross-platform, user-friendly tool for the analysis and visualization of Social Networks. It lets you construct networks (mathematical graphs) with a few clicks on a virtual canvas, or load networks of various formats (GraphML, GraphViz, Adjacency,Pajek, UCINET, etc). Also, SocNetV enables you to modify the social networks, analyse their social and mathematical properties and apply visualization layouts for relevant presentation.

Furthermore, random networks (Erdos-Renyi, Watts-Strogatz, ring lattice, etc) and known social network datasets (i.e. Padgett’s Florentine families) can be easily recreated. SocNetV also offers a built-in web crawler, allowing you to automatically create networks from links found in a given initial URL.

The application computes basic graph properties, such as density, diameter, geodesics and distances (geodesic lengths), connectedness, eccentricity, etc. It also calculates advanced structural measures for social network analysis such as centrality and prestige indices (i.e. closeness centrality, betweeness centrality, information centrality, power centrality, proximity and rank prestige), triad census, cliques, clustering coefficient, etc.

SocNetV offers various layout algorithms based either on prominence indices or dynamic models (i.e. Spring-embedder) for meaningful visualizations of social networks. There is also comprehensivedocumentation, both online and while running the application, which explains each feature and algorithm of SocNetV in detail.

Socioviz is a web-based Twitter analytics platform powered by Social Network Analysis metrics. Allows user to query Twitter conversations and find most influential people based on who replies to whom and who mentioned whom. Social Network graphs (user mention and hashtag copresence) are visualized and can be exported in Gephi format (gexf) for further analysis.

statnet is a suite of software packages for network analysis that implement recent advances in the statistical modeling of networks. The analytic framework is based on Exponential family Random Graph Models (ergm). statnet provides a comprehensive framework for ergm-based network modeling, including tools for model estimation, model evaluation, model-based network simulation, and network visualization. This broad functionality is powered by a central Markov chain Monte Carlo (MCMC) algorithm.

SUBDUE is a graph-based knowledge discovery system that finds structural, relational patterns in data representing entities and relationships. SUBDUE represents data using a labeled, directed graph in which entities are represented by labeled vertices or subgraphs, and relationships are represented by labeled edges between the entities. SUBDUE uses the minimum description length (MDL) principle to identify patterns that minimize the number of bits needed to describe the input graph after being compressed by the pattern. SUBDUE can perform several learning tasks, including unsupervised learning, supervised learning, clustering and graph grammar learning. SUBDUE has been successfully applied in a number of areas, including bioinformatics, web structure mining, counter-terrorism, social network analysis, aviation and geology.

Tulip is an information visualisation framework dedicated to the analysis and visualisation of relational data. Tulip aims to provide the developer with a complete library, supporting the design of interactive information visualisation applications for relational data that can be tailored to the problems he or she is addressing. Written in C++ the framework enables the development of algorithms, visual encodings, interaction techniques, data models, and domain-specific visualisations. One of the goal of Tulip is to facilitate the reuse of components and allows the developers to focus on programming their application. This development pipeline makes the framework efficient for research prototyping as well as the development of end-user applications.

Visone is a software tool intended for research and teaching in social network analysis. It is specifically designed to allow experts and novices alike to apply innovative and advanced visual methods with ease and accuracy. The main features include:

- interactive graphical user interface, tailored to social networks
- innovative network visualizations
- support of unconfirmed relations
- available in Java for Windows, Linux, and MacOS
- import and export of standard formats for social network data
- publication-quality export in JPEG, PDF, SVG, Metafile, and other formats