No announcement yet.

DESeq2 with replicates no sig padj

  • Filter
  • Time
  • Show
Clear All
new posts

  • DESeq2 with replicates no sig padj

    So I am running data analysis on count data using DESeq2. I have three biological replicates for each condition. My results show significant p values but no padj values other than 1, even with very low pval. How can I troubleshoot? Truncated data set attached.

    setwd("C:/Users/Melissa Randel/Desktop")
    library( "DESeq" )
    theta = 0.3
    Fname_pos = "trunc_DESeq_out"

    CountTable3L_pos = read.table("counts_table.txt")
    Design3L_pos = data.frame( row.names = colnames( CountTable3L_pos ), condition = c( "untreated", "untreated", "untreated", "treated", "treated", "treated" ), libType = c( "single-end", "single-end", "single-end", "single-end", "single-end","single-end" ) )
    singleSamples_pos = Design3L_pos$libType == "single-end"
    countTable_pos = CountTable3L_pos[ , singleSamples_pos]
    condition_pos = Design3L_pos$condition[ singleSamples_pos ]
    full_cds_pos = newCountDataSet( countTable_pos, condition_pos )
    rs_pos = rowSums ( counts ( full_cds_pos ))
    use = (rs_pos > quantile(rs_pos, probs=theta))
    cds_pos = full_cds_pos[use,]
    cds_pos = estimateSizeFactors( cds_pos )
    cds_pos = estimateDispersions( cds_pos )
    res_pos = nbinomTest( cds_pos, "untreated", "treated" )
    write.table(res_pos, file = Fname_pos, append = FALSE, quote = FALSE, sep = "\t", eol = "\n", na = "NA", dec = ".", row.names = TRUE, col.names = TRUE, qmethod = c("escape", "double"), fileEncoding = "")

    Attached Files

  • #2
    Your truncated dataset appears to (correctly) have no significant hits. I'd go through the steps in the vignette and take a look at the dispersion and MA plots. Relatedly, it looks like you're using DESeq - would recommend using DESeq2.


    • #3
      Small p-values are expected when you do many tests. One way to think about p-value correction is so you are not fooled by these small p-values which are expected under the null. Under the null, you would expect 1 p-value < 1/10,000 when you do 10,000 tests, 2 p-values less than 2/10,000, etc. If you run p-values like these (i.e. uniformly distributed) through an adjustment like the BH method, you will find there will generally be no set for which the FDR < x < 1. This is multiple test correction doing it's job. See the vignette for more description.

      Also, as fanli points out, that is DESeq code, not DESeq2.