qtlFDR {MetaNetwork} | R Documentation |
Calculate thresholds to control the false discovery rate in QTL analysis. At given fdrThres(desired proportion of false positives), estimate the corresponding qtlThreshold (qtlThres). And/or at given qtlThres (desired treshold for significance), estimate the corresponding proportion of false positives (fdrThres).
qtlFDR <- function( qtlProfiles, fdrThres=0.05, qtlThres=NULL )
qtlProfiles |
matrix of QTL mapping of traits (rownames)
to markers (columnnames), as -log_{10}(p) values. See qtlProfiles example data. |
fdrThres |
the desired qvalue proportion of false positives incured (called the false discovery rate). Default is 0.05. See qvalue package. |
qtlThres |
numeric -log_{10}(p) desired threshold value for significant QTLs. See qtlThreshold function. |
A matrix with three columns and two rows:
c: qValue |
proportion of false positives (fdr). |
c: pValue |
10^{-1*qtlThres} transformation of qtlThres/qtlProfiles to match qvalue package. |
c: -log10P |
-log_{10}(p) estimation of qtlThres . |
r: fdrThres |
a pValue and -log_{10}(p) qtlThres for the given fdrThres . |
r: qtlThres |
a qValue (fdr) and pValue for the given qtlThres . |
Example:
qValue | pValue | -log10P | |
[1,] | 0.050000000 | 0.0809722708 | 1.091664 |
[2,] | 0.001344755 | 0.0006845554 | 3.164591 |
fdrThres
or qtlThres
is NULL then the respective rows are ommitted.
Jingyuan Fu <j.fu@rug.nl>, Morris Swertz <m.a.swertz@rug.nl>, Ritsert Jansen <r.c.jansen@rug.nl>
Storey, J. D. & Tibshirani, R. Statistical significance for genomewide studies. Proc. Natl. Acd. Sci. USA 100, 9440-9445 (2003).
Fu J, Swertz MA, Keurentjes JJB, Jansen RC. MetaNetwork: a computational tool for the genetic study of metabolism. Nature Protocols (2007).
http://gbic.biol.rug.nl/supplementary/2007/MetaNetwork
Use qtlThreshold
to estimate an QTL threshold based on simulation.
Use qtlMapTwoPart
to calculate qtlProfiles
.
Use MetaNetwork
for automated application of this function as part a genetic analysis protocol on metabolites.
## load the example data provided with this package data(markers) data(genotypes) data(traits) ##OR: load your own data #markers <- loadData("markers.csv") #genotypes <- loadData("genotypes.csv") #traits <- loadData("traits.csv") ##calculate the two part qtl qtlProfiles <- qtlMapTwoPart(genotypes=genotypes, traits=traits, spike=4) ##set the qtl threshold qtlThres <- 3.79 ##OR: estimate the threshold yourself #qtlThres <- qtlThreshold(genotypes, traits, spike=4) ##estimate FDR qtlFDR <- qtlFDR(qtlProfiles, fdrThres=0.05, qtlThres=qtlThres) ##show FDR for both fdrThres of 0.05 and qtlThres of qtlThres qtlFDR