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().

Arguments

x, y

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

One of the following:

  • Character scalar with value "none".

  • data.frame with two columns

  • list with two such data.frames.

tableY, tableX

A table containing features of interest. Rows should be samples and columns should be features. Y and X refer to the position of the features in a formula: Y ~ X.
< For Bioconductor S4 objects >
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 output@metadata.

verbose

Logical scalar. Whether to print diagnostic information (Default: TRUE).#' @param force_new boolean If x already has a dictionary Matrix in metadata, ignore it and generate a new object anyway? (Default: FALSE).

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).

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.

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, see first vignette.
data(FMT_data)

t1 <- t(FMT_metab)
t2 <- t(FMT_KOs)

# Input objects and syntax:
## define `x` and `y` as characters
web <- weaveWeb(
    x = "ko", y = "cpd", link = kegg_link(),
    tableX = t2, tableY = t1,
    metadata = NULL, verbose = TRUE
)
#> Dropped features in tableX: 2476 remain. 
#> Warning: Argument `metadata` not provided; Please validate sample ID order.

## define `x` and `y` with a formula
web2 <- weaveWeb(
    x = cpd ~ ko, link = kegg_link(),
    tableX = t2, tableY = t1,
    metadata = NULL, verbose = TRUE
)
#> Dropped features in tableX: 2476 remain. 
#> Warning: Argument `metadata` not provided; Please validate sample ID order.

identical(web, web2)
#> [1] TRUE

# Method for MultiAssayExperiment S4 object
mae <- asMAE(web)
weaveWeb(
    x = mae, link = kegg_link(),
    tableY = "cpd", tableX = "ko",
    force_new = FALSE
)
#> Warning: Argument `metadata` not provided; Please validate sample ID order.
#> anansi::AnansiWeb S7_object with 36 observations:
#>     tableY: cpd (3 features)
#>     tableX: ko (2476 features)
#> Use @ to access: tableX, tableY, dictionary, metadata.

# Method for TreeSummarizedExperiment S4 object
tse <- asTSE(web)
weaveWeb(
    x = tse, link = kegg_link(),
    tableY = "cpd", tableX = "ko",
    force_new = FALSE
)
#> Warning: Argument `metadata` not provided; Please validate sample ID order.
#> anansi::AnansiWeb S7_object with 36 observations:
#>     tableY: cpd (3 features)
#>     tableX: ko (2476 features)
#> Use @ to access: tableX, tableY, dictionary, metadata.