home:
  strip_header: true

url: https://rich-iannone.github.io/DiagrammeR/

template:
  bootstrap: 5

reference:
  - title: External NDF/EDF
    desc: >
      These functions create external node data frames (NDFs) and
      external edge data frames (EDFs). These specialized tables
      can be used to create graphs.
    contents:
      - create_node_df
      - create_edge_df
      - combine_ndfs
      - combine_edfs

  - title: Graph Creation, Rendering, and I/O
    desc: >
      Graphs can be created, read in, written out, and displayed
      with these functions.
    contents:
      - create_graph
      - import_graph
      - from_adj_matrix
      - from_igraph
      - to_igraph
      - open_graph
      - save_graph
      - export_graph
      - export_csv
      - render_graph
      - display_metagraph

  - title: Node and Edge Selection
    desc: >
      Graph nodes or edges can be selected with these functions. This
      is useful because some of the Graph Modification functions (ending
      with "_ws") and all of the Graph Traversal functions can make use
      of the stored selections.
    contents:
      - select_nodes
      - select_nodes_by_id
      - select_nodes_by_degree
      - select_nodes_in_neighborhood
      - select_last_nodes_created
      - select_edges
      - select_edges_by_node_id
      - select_edges_by_edge_id
      - select_last_edges_created
      - get_selection
      - deselect_nodes
      - deselect_edges
      - invert_selection
      - clear_selection

  - title: Graph Modification
    desc: >
      These functions make changes to the graph. We can change many
      aspects of the graph: the graph representation itself (e.g.,
      adding or removing nodes and edges), or, the attributes of
      the nodes and edges (in terms of associated data and aesthetics).
    contents:
      - add_node
      - add_n_nodes
      - add_n_nodes_ws
      - add_node_df
      - add_n_node_clones
      - add_node_clones_ws
      - add_nodes_from_table
      - add_nodes_from_df_cols
      - add_edge
      - add_edge_df
      - add_edges_w_string
      - add_edge_clone
      - add_forward_edges_ws
      - add_reverse_edges_ws
      - fully_connect_nodes_ws
      - add_edges_from_table
      - add_path
      - add_cycle
      - add_balanced_tree
      - add_star
      - add_prism
      - add_full_graph
      - add_grid_2d
      - add_grid_3d
      - add_gnm_graph
      - add_gnp_graph
      - add_pa_graph
      - add_growing_graph
      - add_smallworld_graph
      - add_islands_graph
      - delete_node
      - delete_nodes_ws
      - delete_edge
      - delete_edges_ws
      - delete_loop_edges_ws
      - fully_disconnect_nodes_ws
      - rev_edge_dir
      - rev_edge_dir_ws
      - set_node_attrs
      - set_node_attrs_ws
      - join_node_attrs
      - rescale_node_attrs
      - copy_node_attrs
      - rename_node_attrs
      - drop_node_attrs
      - mutate_node_attrs
      - mutate_node_attrs_ws
      - colorize_node_attrs
      - recode_node_attrs
      - set_node_position
      - layout_nodes_w_string
      - nudge_node_positions_ws
      - set_node_attr_w_fcn
      - set_edge_attrs
      - set_edge_attrs_ws
      - join_edge_attrs
      - rescale_edge_attrs
      - copy_edge_attrs
      - rename_edge_attrs
      - drop_edge_attrs
      - mutate_edge_attrs
      - mutate_edge_attrs_ws
      - colorize_edge_attrs
      - recode_edge_attrs
      - node_data
      - node_aes
      - edge_data
      - edge_aes

  - title: Graph Transformation
    desc: >
      Wholesale changes to a graph can be made with any of these
      functions. Combine two graphs, transform them to different
      representations, even change whether the graph is directed
      or undirected.
    contents:
      - combine_graphs
      - transform_to_subgraph_ws
      - transform_to_complement_graph
      - transform_to_min_spanning_tree
      - set_graph_undirected
      - set_graph_directed

  - title: Graph Inspection
    desc: >
      Sometimes, you'll need to gather information about the
      working graph. This collection of functions allows for
      extraction of graph components (e.g., ndfs and edfs),
      attribute information, counts, node and edge properties,
      and more.
    contents:
      - get_node_df
      - get_node_df_ws
      - get_node_info
      - get_last_nodes_created
      - get_node_attrs
      - get_node_attrs_ws
      - get_degree_distribution
      - get_degree_histogram
      - get_edge_df
      - get_edge_df_ws
      - get_edge_info
      - get_last_edges_created
      - get_edge_attrs
      - get_edge_attrs_ws
      - get_node_ids
      - get_nbrs
      - get_common_nbrs
      - get_non_nbrs
      - get_similar_nbrs
      - get_predecessors
      - get_successors
      - get_all_connected_nodes
      - get_articulation_points
      - get_periphery
      - get_edge_ids
      - get_edges
      - get_paths
      - get_graph_info
      - do_dfs
      - do_bfs
      - count_nodes
      - count_edges
      - count_loop_edges
      - count_mutual_node_pairs
      - count_asymmetric_node_pairs
      - count_automorphisms
      - count_unconnected_nodes
      - count_unconnected_node_pairs
      - count_w_connected_cmpts
      - count_s_connected_cmpts
      - get_multiedge_count
      - get_edge_count_w_multiedge
      - get_agg_degree_in
      - get_agg_degree_out
      - get_agg_degree_total
      - get_mean_distance
      - get_min_eccentricity
      - get_max_eccentricity
      - get_reciprocity
      - get_girth
      - get_adhesion
      - get_min_cut_between
      - get_degree_in
      - get_degree_out
      - get_degree_total
      - get_betweenness
      - get_closeness
      - get_pagerank
      - get_alpha_centrality
      - get_eigen_centrality
      - get_authority_centrality
      - get_leverage_centrality
      - get_radiality
      - get_eccentricity
      - get_coreness
      - get_closeness_vitality
      - get_dice_similarity
      - get_jaccard_similarity
      - get_w_connected_cmpts
      - get_s_connected_cmpts
      - get_cmty_edge_btwns
      - get_cmty_walktrap
      - get_cmty_louvain
      - get_cmty_l_eigenvec
      - get_cmty_fast_greedy
      - is_node_present
      - is_edge_present
      - is_edge_loop
      - is_edge_multiple
      - is_edge_mutual
      - is_graph_empty
      - is_graph_directed
      - is_graph_undirected
      - is_graph_simple
      - is_graph_weighted
      - is_graph_connected
      - is_graph_dag
      - is_property_graph

  - title: Value Caching
    desc: >
      Think of caching as a way to temporarily store a vector
      of values within the graph. Why do this? Well, one could
      extract node or edge data as vector, cache that in the
      graph, and then later use it as input in another function,
      all in the same functional pipeline.
    contents:
      - set_cache
      - get_cache
      - delete_cache

  - title: Graph Traversal
    desc: >
      Traversing the graph is useful if you have a defined
      graph model and you'd like to explore the connections
      and relationships between nodes and edges. Traversals
      effectively modify a selection of nodes or edges. With
      the modified selection, we can extract related
      attributes and work with them.
    contents:
      - trav_out
      - trav_in
      - trav_both
      - trav_out_edge
      - trav_in_edge
      - trav_both_edge
      - trav_out_node
      - trav_in_node
      - trav_out_until
      - trav_in_until
      - trav_reverse_edge

  - title: Graph Series
    desc: >
      A series of graphs can be occasionally useful. It's a
      convenient container for a set of closely related graphs
      (for example, a network that changes with time).
    contents:
      - create_graph_series
      - add_graph_to_graph_series
      - remove_graph_from_graph_series
      - filter_graph_series
      - count_graphs_in_graph_series
      - get_graph_from_graph_series
      - get_graph_series_info
      - render_graph_from_graph_series

  - title: Graph Metadata
    desc: >
      Graph metadata consist of the attributes that don't
      necessarily belong to the individual nodes or edges,
      but, may affect their appearance when the graph is
      rendered. These metadata can also apply directly to
      the graph object itself.
    contents:
      - add_global_graph_attrs
      - delete_global_graph_attrs
      - get_global_graph_attr_info
      - set_graph_name
      - set_graph_time
      - set_node_attr_to_display
      - set_edge_attr_to_display
      - get_graph_name
      - get_graph_time
      - get_graph_log

  - title: Graph Actions
    desc: >
      Take action! Think of graph actions as little
      subroutines that execute at every meaningful
      change of the graph.
    contents:
      - add_graph_action
      - delete_graph_actions
      - get_graph_actions
      - reorder_graph_actions
      - trigger_graph_actions

  - title: Graphviz, mermaid, and visNetwork
    contents:
      - DiagrammeR
      - grViz
      - generate_dot
      - replace_in_spec
      - mermaid
      - visnetwork

  - title: Shiny
    contents:
      - renderDiagrammeR
      - DiagrammeROutput
      - renderGrViz
      - grVizOutput

  - title: Datasets
    contents:
      - node_list_1
      - edge_list_1
      - node_list_2
      - edge_list_2
      - currencies
      - usd_exchange_rates
