False Discovery Rate for the Fused Lasso Latent Feature Model

Description

Estimates the false discovery rate (FDR) over a range of threshold values for a fitted Fused Lasso Latent Feature (FLLat) model. Also plots the FDRs against the threshold values.

Usage

1
2
3
4
FLLat.FDR(Y, Y.FLLat, n.thresh=50, fdr.control=0.05, pi0=1, n.perms=20)

## S3 method for class 'FDR'
plot(x, xlab="Threshold", ylab="FDR", ...)

Arguments

Y

A matrix of data from an aCGH experiment (usually in the form of log intensity ratios) or some other type of copy number data. Rows correspond to the probes and columns correspond to the samples.

Y.FLLat

A FLLat model fitted to Y. That is, an object of class FLLat, as returned by FLLat.

n.thresh

The number of threshold values at which to estimate the FDR. The default is 50.

fdr.control

A value at which to control the FDR. The function will return the smallest threshold value which controls the FDR at the specified value. The default is 0.05.

pi0

The proportion of true null hypotheses. For probe location l in sample s, the null hypothesis H_0(l,s) states that there is no copy number variation at that location. The default is 1.

n.perms

The number of permutations of the aCGH data used in estimating the FDRs. The default is 20.

x

An object of class FDR, as returned by FLLat.FDR.

xlab

The title for the x-axis of the FDR plot.

ylab

The title for the y-axis of the FDR plot.

...

Further graphical parameters.

Details

Identifying regions of copy number variation (CNV) in aCGH data can be viewed in a multiple-testing framework. For each probe location l within sample s, we are essentially testing the hypothesis H_0(l,s) that there is no CNV at that location. The decision to reject each hypothesis can be based on the fitted values \hat{Y}=\hat{B}\hat{Θ} produced by the FLLat model. Specifically, for a given threshold value T, we can declare location (l,s) as exhibiting CNV if |\hat{y}_{ls}|>=T. The FDR is then defined to be the expected proportion of declared CNVs which are not true CNVs.

The FDR for a fitted FLLat model is estimated in the following manner. Firstly, n.thresh threshold values are chosen, equally spaced between 0 and the largest absolute fitted value over all locations (l,s). Then, for each threshold value, the estimated FDR is equal to

FDR=(pi_0*V_0)/R

where:

  • The quantity R is the number of declared CNVs calculated from the fitted FLLat model, as described above.

  • The quantity V_0 is the number of declared CNVs calculated from re-fitting the FLLat model to permuted versions of the data Y. In each permuted data set, the probe locations within each sample are permuted to approximate the null distribution of the data.

  • The quantity π_0 is the proportion of true null hypotheses. The default value of 1 will result in conservative estimates of the FDR. If warranted, smaller values of π_0 can be specified.

For more details, please see Nowak and others (2011) and the package vignette.

Value

An object of class FDR with components:

thresh.vals

The threshold values for which each FDR was estimated.

FDRs

The estimated FDR for each value of thresh.vals.

thresh.control

The smallest threshold value which controls the estimated FDR at fdr.control.

There is a plot method for FDR objects.

Note

Due to the randomness of the permutations, for reproducibility of results please set the random seed using set.seed before running FLLat.FDR.

Author(s)

Gen Nowak gen.nowak@gmail.com, Trevor Hastie, Jonathan R. Pollack, Robert Tibshirani and Nicholas Johnson.

References

G. Nowak, T. Hastie, J. R. Pollack and R. Tibshirani. A Fused Lasso Latent Feature Model for Analyzing Multi-Sample aCGH Data. Biostatistics, 2011, doi: 10.1093/biostatistics/kxr012

See Also

FLLat

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## Load simulated aCGH data.
data(simaCGH)

## Run FLLat for J = 5, lam1 = 1 and lam2 = 9.
result <- FLLat(simaCGH,J=5,lam1=1,lam2=9)

## Estimate the FDRs.
result.fdr <- FLLat.FDR(simaCGH,result)

## Plotting the FDRs against the threshold values.    
plot(result.fdr)

## The threshold value which controls the FDR at 0.05.
result.fdr$thresh.control