| 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