plotGraph: Plotting igraph objects with information from a...

plotGraphR Documentation

Plotting igraph objects with information from a SummarizedExperiment

Description

plotGraph plots an igraph object with additional information matched from a SummarizedExperiment object for the nodes only. Information on the edges have to provided manually.

Usage

plotColGraph(x, y, ...)

plotRowGraph(x, y, ...)

## S4 method for signature 'ANY,SummarizedExperiment'
plotColGraph(
  x,
  y,
  show_label = FALSE,
  add_legend = TRUE,
  layout = "kk",
  edge_type = c("fan", "link", "arc", "parallel"),
  edge_colour_by = NULL,
  edge_width_by = NULL,
  colour_by = NULL,
  shape_by = NULL,
  size_by = NULL,
  by_exprs_values = "counts",
  other_fields = list(),
  ...
)

## S4 method for signature 'SummarizedExperiment,missing'
plotColGraph(x, y, name = "graph", ...)

## S4 method for signature 'ANY,SummarizedExperiment'
plotRowGraph(
  x,
  y,
  show_label = FALSE,
  add_legend = TRUE,
  layout = "kk",
  edge_type = c("fan", "link", "arc", "parallel"),
  edge_colour_by = NULL,
  edge_width_by = NULL,
  colour_by = NULL,
  shape_by = NULL,
  size_by = NULL,
  by_exprs_values = "counts",
  other_fields = list(),
  ...
)

## S4 method for signature 'SummarizedExperiment,missing'
plotRowGraph(x, y, name = "graph", ...)

Arguments

x, y

a graph object and a SummarizedExperiment object or just a SummarizedExperiment. For the latter object a graph object must be stored in metadata(x)$name.

...

additional arguments for plotting. See mia-plot-args for more details i.e. call help("mia-plot-args")

show_label

logical (scalar), integer or character vector. If a logical scalar is given, should tip labels be plotted or if a logical vector is provided, which labels should be shown? If an integer or character vector is provided, it will be converted to a logical vector. The integer values must be in the range of 1 and number of nodes, whereas the values of a character vector must match values of a label or name column in the node data. In case of a character vector only values corresponding to actual labels will be plotted and if no labels are provided no labels will be shown. (default: show_label = FALSE)

add_legend

logical scalar. Should legends be plotted? (default: add_legend = TRUE)

layout

layout for the plotted graph. See ggraph for details. (default: layout = "kk")

edge_type

type of edge plotted on the graph. See geom_edge_fan for details and other available geoms. (default: edge_type = "fan")

edge_colour_by

Specification of a edge metadata field to use for setting colours of the edges.

edge_width_by

Specification of a edge metadata field to use for setting width of the edges.

colour_by

Specification of a column metadata field or a feature to colour graph nodes by, see the by argument in ?retrieveCellInfo for possible values.

shape_by

Specification of a column metadata field or a feature to shape graph nodes by, see the by argument in ?retrieveCellInfo for possible values.

size_by

Specification of a column metadata field or a feature to size graph nodes by, see the by argument in ?retrieveCellInfo for possible values.

by_exprs_values

A string or integer scalar specifying which assay to obtain expression values from, for use in point aesthetics - see the exprs_values argument in ?retrieveCellInfo.

other_fields

Additional fields to include in the node information without plotting them.

name

If x is a SummarizedExperiment the key for subsetting the metadata(x) to a graph object.

Details

: Internally tidygraph and ggraph are used. Therefore, all graph types which can be converted by tidygraph::as_tbl_graph can be used.

Value

a ggtree plot

Examples


# data setup
library(mia)
data(GlobalPatterns)
data(col_graph)
data(row_graph)
data(row_graph_order)
metadata(GlobalPatterns)$col_graph <- col_graph

genus <- agglomerateByRank(GlobalPatterns,"Genus",na.rm=TRUE)
metadata(genus)$row_graph <- row_graph
order <- agglomerateByRank(genus,"Order",na.rm=TRUE)
metadata(order)$row_graph <- row_graph_order

# plot a graph independently
plotColGraph(col_graph,
             genus,
             colour_by = "SampleType",
             edge_colour_by = "weight",
             edge_width_by = "weight",
             show_label = TRUE)

# plot the graph stored in the object
plotColGraph(genus,
             name = "col_graph",
             colour_by = "SampleType",
             edge_colour_by = "weight",
             edge_width_by = "weight")
             

# plot a graph independently
plotRowGraph(row_graph,
             genus,
             colour_by = "Kingdom",
             edge_colour_by = "weight",
             edge_width_by = "weight")

# plot the graph stored in the object
plotRowGraph(genus,
             name = "row_graph",
             colour_by = "Phylum",
             edge_colour_by = "weight",
             edge_width_by = "weight")

                           
# plot a graph independently
plotRowGraph(row_graph_order,
             order,
             colour_by = "Kingdom",
             edge_colour_by = "weight",
             edge_width_by = "weight")

# plot the graph stored in the object and include some labels
plotRowGraph(order,
             name = "row_graph",
             colour_by = "Phylum",
             edge_colour_by = "weight",
             edge_width_by = "weight", 
             show_label = c("Sulfolobales","Spirochaetales",
                            "Verrucomicrobiales"))
                            
# labels can also be included via selecting specific rownames of x/y
plotRowGraph(order,
             name = "row_graph",
             colour_by = "Phylum",
             edge_colour_by = "weight",
             edge_width_by = "weight", 
             show_label = c(1,10,50))
             
# labels can also be included via a logical vector, which has the same length
# as nodes are present
label_select <- rep(FALSE,nrow(order))
label_select[c(1,10,50)] <-  TRUE
plotRowGraph(order,
             name = "row_graph",
             colour_by = "Phylum",
             edge_colour_by = "weight",
             edge_width_by = "weight",
             show_label = label_select)


microbiome/miaViz documentation built on April 21, 2024, 8:45 a.m.