简体   繁体   中英

BH correction procedure giving monotonous/repeatitive adjusted p-values

I was performing a basic R analysis on a gene expression data. The analysis aims at finding whether there is a gender difference in the gene expression for adrenal gland.

The data were separated as males and females and later t-tests were performed. Finally, I got a set of p-values and a BH correction procedure was performed on it. But the adjusted p-values I get, are monotonous, same value repeating from beginning to end. And I cannot find any rejections at 10 percent significance level. What could be possibly wrong?

Here is the R code performed for the t-test on gene expression data:

first.row <- t.test(son.a[1,males],son.a[1,-males])  

# Result from t-test :
# Welch Two Sample t-test
# data: son.a[1, males] and son.a[1, -males]
# t = 0.8923, df = 9.594, p-value = 0.3941
# alternative hypothesis: true difference in means is
#       not equal to 0
#       95 percent confidence interval:
#        -0.1188546 0.2761207
#        sample estimates:
#        mean of x mean of y
#        0.527884 0.449251

' son.a ' is the dataframe consisting of gene expression values of 42421 genes. The samples are taken from adrenal glands of both males and females (a total of 9 samples).

# Assigning a function 't.test.pvalue'
t.test.pvalue <- function(dat) {
    results <- t.test(dat[males],dat[-males])
    return(results$p.value)
    }

t.test.pvalue(son.a[1,])
# [1] 0.3940679





# Applying t.test.pvalue to all 42421 rows  
all.rows <- apply(son.a,1,t.test.pvalue)  

head(all.rows)
# [1] 0.3940679 0.5616102 0.6953087 0.3064443 0.8942156 0.8191188  

tail(all.rows)  
# [1] 0.8631147 0.3911861 0.4482372 0.8286146 0.8603733 0.2700229


# Loading "mutoss"
library("mutoss")

# Applying BH function
bh.adjustment <- BH(all.rows,alpha=0.1)
# Benjamini-Hochberg's (1995) step-up procedure
# Number of hyp.:    42421 
# Number of rej.:    0 

# Using p.adjust function
adjP <- p.adjust(all.rows,method = "BH")
adjP  
# [1] 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772
 0.9999772 0.9999772
# [10] 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772
# [19] 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 0.9999772 

The values are the same till the end of the vector 'adjP'.Anything wrong in the above R code?

Thanks in advance!

This is not a "problem" per se. Please have a look at these two posts for details on BH correction at CrossValidated and StackOverflow .

The data you have (assuming that it is properly preprocessed / normalized) suggests that there is no significant difference based on sex. There might be other confounding effects that you need to take into account though (batch, age, disease status, etc...).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM