Skip to contents

Generate a biadjacency matrix, linking the features between two tables. Return an AnansiWeb object which contains all three.

weaveWeb() is for general use and has flexible default settings.

weaveKEGG() is a wrapper that sets link to kegg_link(). All variants are special cases of weaveWeb().

Usage

weaveWeb(x, ...)

# S4 method for class 'character'
weaveWeb(
  x,
  y,
  link = NULL,
  tableX = NULL,
  tableY = NULL,
  metadata = NULL,
  verbose = TRUE,
  ...
)

# S4 method for class 'formula'
weaveWeb(x, link = NULL, tableX = NULL, tableY = NULL, ...)

weaveKEGG(x, ...)

# S4 method for class 'MultiAssayExperiment'
weaveWeb(
  x,
  link = NULL,
  ...,
  tableY = NULL,
  tableX = NULL,
  typeY = NULL,
  typeX = NULL,
  force_new = FALSE,
  experiment1 = NULL,
  experiment2 = NULL,
  assay.type1 = NULL,
  assay.type2 = NULL
)

# S4 method for class 'SingleCellExperiment'
weaveWeb(
  x,
  link = NULL,
  ...,
  tableY = NULL,
  tableX = NULL,
  typeY = NULL,
  typeX = NULL,
  force_new = FALSE,
  experiment1 = NULL,
  experiment2 = NULL,
  assay.type1 = NULL,
  assay.type2 = NULL
)

Arguments

x, y

Character scalar, names of feature types that should be linked. Should be found in the column names of link.

...

additional parameters passed to AnansiWeb().

One of the following:

  • Character scalar with value "none".

  • data.frame with two columns

  • list with two such data.frames.

tableY, tableX

Character scalar or numeric scalar. Selects experiment corresponding to tableY and tableX from experiments(x) of MultiAssayExperiment object by name or index, name is recommended. (Default slots: Y = 1L, X = 2L).

metadata

Optional data.frame of sample metadata, to be included with output. Can be accessed from AnansiWeb generated by weaveWeb() with metadata(output).

verbose

Logical scalar. Whether to print diagnostic information (Default: TRUE).

typeY, typeX

Character scalar or numeric scalar. Selects assay from experiments to tableY and tableX from experiments(x). (Default: 1L - the first assay in that experiment).

force_new

boolean If x already has a dictionary Matrix in metadata, ignore it and generate a new object anyway? (Default: FALSE).

experiment1, experiment2

synonymous args to tableY,tableX for compatibility with mia argument style.

assay.type1, assay.type2

synonymous args to typeY,typeX for compatibility with mia argument style.

formula

formula of the form y ~ x, denoting desired output format; assigns y to rows and columns to x. Equivalent to using x and y arguments.

Value

an AnansiWeb object, with sparse binary biadjacency matrix with features from y as rows and features from x as columns in dictionary slot.

Details

If the link argument is "none", all features will be considered linked. If one or more data.frames, colnames should be as specified in x and y.

See also

  • AnansiWeb: For general constructor and methods.

  • kegg_link(): For examples of input for link argument.

Examples

# Setup demo tables
ec2ko <- kegg_link()[["ec2ko"]]
ec2cpd <- kegg_link()[["ec2cpd"]]

# Basic usage
weaveWeb(cpd ~ ko, link = kegg_link())
#> AnansiWeb S4 object with 1 observations:
#>     tableY: cpd (6754 features)
#>     tableX: ko (7270 features)
#> Accessors: tableX(), tableY(), dictionary(), metadata().
weaveWeb(x = "ko", y = "ec", link = ec2ko)
#> AnansiWeb S4 object with 1 observations:
#>     tableY: ec (5581 features)
#>     tableX: ko (8817 features)
#> Accessors: tableX(), tableY(), dictionary(), metadata().
weaveWeb(ec ~ cpd, link = ec2cpd)
#> AnansiWeb S4 object with 1 observations:
#>     tableY: ec (5934 features)
#>     tableX: cpd (7802 features)
#> Accessors: tableX(), tableY(), dictionary(), metadata().

# A wrapper is available for kegg ko, ec and cpd data
generic <- weaveWeb(cpd ~ ko, link = kegg_link())
kegg_wrapper <- weaveKEGG(cpd ~ ko)

identical(generic, kegg_wrapper)
#> [1] TRUE

# The following are equivalent to transposition:
a <- weaveWeb(ko ~ cpd, link = kegg_link()) |> dictionary()
b <- weaveWeb(cpd ~ ko, link = kegg_link()) |> dictionary()

identical(a, Matrix::t(b))
#> [1] TRUE