Skip to contents

In some situations (see examples) it is required to find a reference sample of some kind for each sample in a data set. This is a convenience method to find such reference samples, and provide them as a lookup table.

Usage

FindReferences(
  data,
  reference = NULL,
  reference.function = NULL,
  group = NULL,
  as.list = FALSE,
  columns = NULL
)

Arguments

data

A grandR object

reference

Expression evaluating to a logical vector to indicate which columns are reference columns; evaluated in an environment having the columns of Coldata(data)

reference.function

Function evaluating to a logical vector to indicate which columns are reference columns; called with the data frame row corresponding to the sample, and evaluated in an environment having the columns of Coldata(data)

group

a vector of colnames in Coldata(data)

as.list

return it as a list (names correspond to each sample, elements are the reference samples)

columns

find references only for a subset of the columns (samples or cells; can be NULL)

Value

A logical matrix that contains for each sample or cell (in columns) a TRUE for the corresponding corresponding reference samples or cells in rows

Details

Without any group, the list simply contains all references for each sample/cell. With groups defined, each list entry consists of all references from the same group.

Columns can be given as a logical, integer or character vector representing a selection of the columns (samples or cells). The expression is evaluated in an environment havin the Coldata, i.e. you can use names of Coldata as variables to conveniently build a logical vector (e.g., columns=Condition=="x").

Examples

sars <- ReadGRAND(system.file("extdata", "sars.tsv.gz", package = "grandR"),
                  design=c("Condition",Design$dur.4sU,Design$Replicate))
#> Warning: Duplicate gene symbols (n=1, e.g. MATR3) present, making unique!
FindReferences(sars,reference=no4sU)
#>              Mock.no4sU.A Mock.1h.A Mock.2h.A Mock.2h.B Mock.3h.A Mock.4h.A
#> Mock.no4sU.A         TRUE      TRUE      TRUE      TRUE      TRUE      TRUE
#> Mock.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.no4sU.A         TRUE      TRUE      TRUE      TRUE      TRUE      TRUE
#> SARS.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#>              SARS.no4sU.A SARS.1h.A SARS.2h.A SARS.2h.B SARS.3h.A SARS.4h.A
#> Mock.no4sU.A         TRUE      TRUE      TRUE      TRUE      TRUE      TRUE
#> Mock.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.no4sU.A         TRUE      TRUE      TRUE      TRUE      TRUE      TRUE
#> SARS.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
# obtain the corresponding no4sU sample for each sample; use the Condition column
FindReferences(sars,Condition=="Mock",group="duration.4sU.original")
#>              Mock.no4sU.A Mock.1h.A Mock.2h.A Mock.2h.B Mock.3h.A Mock.4h.A
#> Mock.no4sU.A         TRUE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.1h.A           FALSE      TRUE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.A           FALSE     FALSE      TRUE      TRUE     FALSE     FALSE
#> Mock.2h.B           FALSE     FALSE      TRUE      TRUE     FALSE     FALSE
#> Mock.3h.A           FALSE     FALSE     FALSE     FALSE      TRUE     FALSE
#> Mock.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE      TRUE
#> SARS.no4sU.A        FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#>              SARS.no4sU.A SARS.1h.A SARS.2h.A SARS.2h.B SARS.3h.A SARS.4h.A
#> Mock.no4sU.A         TRUE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.1h.A           FALSE      TRUE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.A           FALSE     FALSE      TRUE      TRUE     FALSE     FALSE
#> Mock.2h.B           FALSE     FALSE      TRUE      TRUE     FALSE     FALSE
#> Mock.3h.A           FALSE     FALSE     FALSE     FALSE      TRUE     FALSE
#> Mock.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE      TRUE
#> SARS.no4sU.A        FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
# obtain for each sample the corresponding sample in the Mock condition
FindReferences(sars,Condition=="Mock",group=c("duration.4sU.original","Replicate"))
#>              Mock.no4sU.A Mock.1h.A Mock.2h.A Mock.2h.B Mock.3h.A Mock.4h.A
#> Mock.no4sU.A         TRUE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.1h.A           FALSE      TRUE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.A           FALSE     FALSE      TRUE     FALSE     FALSE     FALSE
#> Mock.2h.B           FALSE     FALSE     FALSE      TRUE     FALSE     FALSE
#> Mock.3h.A           FALSE     FALSE     FALSE     FALSE      TRUE     FALSE
#> Mock.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE      TRUE
#> SARS.no4sU.A        FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#>              SARS.no4sU.A SARS.1h.A SARS.2h.A SARS.2h.B SARS.3h.A SARS.4h.A
#> Mock.no4sU.A         TRUE     FALSE     FALSE     FALSE     FALSE     FALSE
#> Mock.1h.A           FALSE      TRUE     FALSE     FALSE     FALSE     FALSE
#> Mock.2h.A           FALSE     FALSE      TRUE     FALSE     FALSE     FALSE
#> Mock.2h.B           FALSE     FALSE     FALSE      TRUE     FALSE     FALSE
#> Mock.3h.A           FALSE     FALSE     FALSE     FALSE      TRUE     FALSE
#> Mock.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE      TRUE
#> SARS.no4sU.A        FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.1h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.2h.B           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.3h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
#> SARS.4h.A           FALSE     FALSE     FALSE     FALSE     FALSE     FALSE
# obtain for each sample the corresponding Mock sample, paying attention to replicates