what is adjusted p-value i have no idea? how it can be calculate?
hello, i have pre-processed 9 set of microarray data belonging different subtype of ovarian cancer and trying to find out differentially expressed gene in each condition.for finding differentially expressed gene, i have filtered genes with p -value <0.05 and fold change 2. but problem is that there too large number of genes comming. example. 1500 genes are downregulated and 1768 genes upregulated. is this possible? The codes which i havve use for pre-processing and t- test calculate aregive below-
mydata <- ReadAffy()
mydata
eset <- rma(mydata)
exprSet <- exprs(eset)
pvalue.exprSet = apply(exprSet, 1, function(x){t.test(x[1:4], x[5:45]) $p.value})
Combine.exprset.pvalue = cbind(exprSet,pvalue.exprSet)
write.table(Combine.exprset.pvalue,"NormalizedValues.xls",sep="\t",col.names = NA)
Kindly give me solution,where is the problem ? thanking you.
2 answers
A possible solution is to use adjusted pvalue instead of raw pvalue to account for multiple testing.
To illustrate this, imagine that there are 20 000 genes considered in your experiment. With a 5% pvalue cutoff, you accept to have 1000 false positives in your DEGs, which is bad. Instead, you could use FDR (false discovery rate) : with a 5% FDR cutoff, you accept to have 5% of your DEGs that are false positives. So if you end up with 1000 DEGs, only 50 should be false positives, which is much better.
what is adjusted p-value i have no idea?
Then you should read about it. Search for "multiple testing correction" and "adjusted p-value".
how it can be calculate?
You can calculate it from a set of uncorrected p-value, see Piechota answerL
You should start with this paper by Storey & Tibshirani
Then update your code accordingly
fdrValue = p.adjust(pvalue.exprSet, method="fdr")
It is also important to know that you are mixing parametric and non-parametric statistical tests. In your case it is probably better to use only parametric t.test
t.test(x[1:4], x[5:45], var.equal = TRUE)
when i am using code for t-test which are given below: pvalue.exprSet = apply(exprSet, 1, function(x){t.test(x[1:4], x[5:17],var.equal = true) $p.value}) the error occur which are mentioned below. Error in t.test.default(x[1:4], x[5:17], var.equal = true) : object 'true' not found Error during wrapup: cannot open the connection
Log in to answer this question.
Did you use adjusted p-values ? or nominal p-values prior multitesing correction ? You should use adjusted ones.
Why not use limma, which is standardised for these types of microarray analyses?
Even Devon mentions it here: A: affymetrix microarray gene expression analysis