ash_ruv2: Use control genes to estimate hidden confounders and variance...

Description Usage Arguments Value Author(s) References See Also

View source: R/ash_wrap.R

Description

This model is fit using a two-step approach proposed in Gagnon-Bartsch et al (2013) modified to include estimating a variance inflation parameter. Rather than use OLS in the second step of this two-step procedure, we estimate the coefficients using Adaptive SHrinkage (ASH) (Stephens, 2016). In the current implementation, only the coefficients of one covariate can be estimated using ASH. The rest are regressed out using OLS.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
ash_ruv2(
  Y,
  X,
  ctl,
  k = NULL,
  cov_of_interest = ncol(X),
  likelihood = c("t", "normal"),
  ash_args = list(),
  limmashrink = TRUE,
  degrees_freedom = NULL,
  include_intercept = TRUE,
  gls = TRUE,
  fa_func = pca_2step,
  fa_args = list(),
  use_factor = FALSE
)

Arguments

Y

A matrix of numerics. These are the response variables where each column has its own variance. In a gene expression study, the rows are the individuals and the columns are the genes.

X

A matrix of numerics. The covariates of interest.

ctl

A vector of logicals of length ncol(Y). If position i is TRUE then position i is considered a negative control.

k

A non-negative integer.The number of unobserved confounders. If not specified and the R package sva is installed, then this function will estimate the number of hidden confounders using the methods of Buja and Eyuboglu (1992).

cov_of_interest

A positive integer. The column number of the covariate in X whose coefficients you are interested in. The rest are considered nuisance parameters and are regressed out by OLS. ash_ruv2 only works with one covariate of interest right now.

likelihood

Either "normal" or "t". If likelihood = "t", then the user may provide the degrees of freedom via degrees_freedom.

ash_args

A list of arguments to pass to ash. See ash.workhorse for details.

limmashrink

A logical. Should we apply hierarchical shrinkage to the variances (TRUE) or not (FALSE)? If degrees_freedom = NULL and limmashrink = TRUE and likelihood = "t", then we'll also use the limma returned degrees of freedom.

degrees_freedom

if likelihood = "t", then this is the user-defined degrees of freedom for that distribution. If degrees_freedom is NULL then the degrees of freedom will be the sample size minus the number of covariates minus k.

include_intercept

A logical. If TRUE, then it will check X to see if it has an intercept term. If not, then it will add an intercept term. If FALSE, then X will be unchanged.

gls

A logical. Should we use generalized least squares (TRUE) or ordinary least squares (FALSE) for estimating the confounders? The OLS version is equivalent to using RUV4 to estimate the confounders.

fa_func

A factor analysis function. The function must have as inputs a numeric matrix Y and a rank (numeric scalar) r. It must output numeric matrices alpha and Z and a numeric vector sig_diag. alpha is the estimate of the coefficients of the unobserved confounders, so it must be an r by ncol(Y) matrix. Z must be an r by nrow(Y) matrix. sig_diag is the estimate of the column-wise variances so it must be of length ncol(Y). The default is the function pca_naive that just uses the first r singular vectors as the estimate of alpha. The estimated variances are just the column-wise mean square.

fa_args

A list. Additional arguments you want to pass to fa_func.

use_factor

A logical. Should we use the estimates of alpha and sig_diag from the factor analysis (TRUE), or re-estimate these using OLS as RUV2 does it (FALSE)? Right now it's probably a bad idea to have the settings use_factor = TRUE, fa_limmashrink = TRUE, limmashrink = TRUE since then the variance estimates of the control genes are being shrunk twice.

Value

Except for the list ruv2, the values returned are the exact same as in ash.workhorse. See that function for more details. Elements in the ruv2 are the exact same as returned in vruv2.

Author(s)

David Gerard

References

See Also

vruv2 for the variance inflation in RUV2 and ash.workhorse for the adaptive shrinkage method.


dcgerard/vicar documentation built on July 7, 2021, 1:08 p.m.