## New verbs

While tidygraph mainly works by allowing you to use well known dplyr verbs on relational data, it provides a few new verbs special to working with this type of data.

Determine the context of subsequent manipulations

Add graphs, nodes, or edges to a tbl_graph

Join graphs on common nodes

Change terminal nodes of edges

Select specific nodes or edges to compute on

Repeatedly modify a graph by a function

Create a temporary alternative representation of the graph to compute on

Functions to generate alternate representations of graphs

## Graph creation

Graphs and networks can come from many sources, or be created by simulation or deterministacally. Tidygraph provides conversions from all well-known structures in R, as well as a range of create_() and play_*() functions for creating well-defined or simulated graphs.

A data structure for tidy graph manipulation

Create different types of well-defined graphs

Graph games based on direct sampling

Graph games based on connected components

Graph games based on evolution

Graph games based on different node types

## Mapping over nodes

Mapping functions over nodes for relational data is different than for standard tabular data as you often want to recurse over a search or in other ways use the graph structure as part of your map.

Apply a function to nodes in the order of a breath first search

Apply a function to nodes in the reverse order of a breath first search

Apply a function to nodes in the order of a depth first search

Apply a function to nodes in the reverse order of a depth first search

Map a function over a graph representing the neighborhood of each node

## Searches

Searching is central to many graph algorithms and is often performed in either a breath-first, or depth-first manner. Tidygraph provides a slew of functions for extracting out information from such searches.

Search a graph with depth first and breath first

## Centrality

Centrality is a key measure in network analysis, and while it is mainly calculated for nodes, a few algorithms exists for calculating edge centrality as well.

Calculate node and edge centrality

## Community detection

Social network analysis is especially interested in detecting groups or communities within a graph, but such algorithms are also useful in other areas of network research. No single algorithm can provide the correct grouping of nodes so several exists that weigh certain features differently.

Group nodes and edges based on community structure

## Node measures

Tidygraph provides a wide range of algorithms for extracting differnt information about the nodes in a graph, from calculating local measures, to defining whether they are part of certain topological features.

Measures based on the neighborhood of each node

Querying node measures

Calculate node ranking

Node properties related to the graph topology

Querying node types

Calculate node pair properties

Perform a random walk on the graph and return encounter rank

## Edge measures

Fewer quantitative measures exist for edges, but they can still be queried for topological features such as which nodes they link, etc.

Querying edge types

Calculate edge ranking

Perform a random walk on the graph and return encounter rank

## Graph measures

The graph under investigation can also have properties of its own that can be summarised into quantitative or qualitative values.

Querying graph types

Graph measurements

## Misc

Outside of the verbs and algorithms there is a few helper functions available to streamline graph manipulation.

Access graph, nodes, and edges directly inside verbs

Evaluate a tidygraph algorithm in the context of a graph