along with chapter 16 of Draghici: Statistics and Data Analysis for Microarrays Using R and Bioconductor
- main function in R to obtain corrected p-vals
p.adjust
- to get available methods type:
p.adjust.methods
[1] "holm" "hochberg" "hommel" "bonferroni" "BH" [6] "BY" "fdr" "none"
- simulate 10 raw p-vals on gene level
raw.p.vals <- runif(10,0,0.5) names(raw.p.vals) <- paste("gene",1:length(raw.p.vals),sep="") raw.p.vals
gene1 gene2 gene3 gene4 gene5 gene6 gene7
0.30128864 0.45386933 0.11451989 0.17423164 0.36300090 0.32262681 0.24504471
gene8 gene9 gene10
0.27808264 0.08773618 0.49969999
- get the corrected vals for example
- Holm's stepwise correction
- Holm's stepwise correction
p.adjust(raw.p.vals,method="holm")
gene1 gene2 gene3 gene4 gene5 gene6 gene7 gene8
1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
gene9 gene10
0.8773618 1.0000000
- False Discovery Rate
p.adjust(raw.p.vals,method="fdr")
gene1 gene2 gene3 gene4 gene5 gene6 gene7 gene8
0.4537511 0.4997000 0.4537511 0.4537511 0.4537511 0.4537511 0.4537511 0.4537511
gene9 gene10
0.4537511 0.4997000
- the
multtestpackage (available from bioconductor) contains also a function for correction (mt.rawp2adjp())
require(multtest) mymethods <- c("Bonferroni", "Holm", "Hochberg", "SidakSS", "SidakSD","BH", "BY","ABH","TSBH") mt.rawp2adjp(raw.p.vals,proc=mymethods)
$adjp
rawp Bonferroni Holm Hochberg SidakSS SidakSD BH BY
[1,] 0.08773618 0.8773618 0.8773618 0.4997 0.6007872 0.6007872 0.4537511 1
[2,] 0.11451989 1.0000000 1.0000000 0.4997 0.7036615 0.6653358 0.4537511 1
[3,] 0.17423164 1.0000000 1.0000000 0.4997 0.8525712 0.7837949 0.4537511 1
[4,] 0.24504471 1.0000000 1.0000000 0.4997 0.9398532 0.8602188 0.4537511 1
[5,] 0.27808264 1.0000000 1.0000000 0.4997 0.9615519 0.8602188 0.4537511 1
[6,] 0.30128864 1.0000000 1.0000000 0.4997 0.9722682 0.8602188 0.4537511 1
[7,] 0.32262681 1.0000000 1.0000000 0.4997 0.9796633 0.8602188 0.4537511 1
[8,] 0.36300090 1.0000000 1.0000000 0.4997 0.9890001 0.8602188 0.4537511 1
[9,] 0.45386933 1.0000000 1.0000000 0.4997 0.9976397 0.8602188 0.4997000 1
[10,] 0.49969999 1.0000000 1.0000000 0.4997 0.9990176 0.8602188 0.4997000 1
ABH TSBH_0.05
[1,] NA 0.4537511
[2,] NA 0.4537511
[3,] NA 0.4537511
[4,] NA 0.4537511
[5,] NA 0.4537511
[6,] NA 0.4537511
[7,] NA 0.4537511
[8,] NA 0.4537511
[9,] NA 0.4997000
[10,] NA 0.4997000
$index
[1] 9 3 4 7 8 1 6 5 2 10
$h0.ABH
[1] NA
$h0.TSBH
h0.TSBH_0.05
10
Warnmeldung:
In min(which(diff(h0.m, na.rm = TRUE) > 0), na.rm = TRUE) :
kein nicht-fehlendes Argument für min; gebe Inf zurück
No comments :
Post a Comment