Obtain reference columns (samples or cells) for all columns (samples or cells) in the data set
Source:R/grandR.R
FindReferences.Rd
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