This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Differential gene expression analysis

I'm trying to find out a set of differentially expressed genes between tumor and normal condition of the same samples. My questions are as follows:-

  1. Is there a minimum number of samples that I need to use to achieve the result?

  2. Is the following design appropreiate for this task?

My design is as follows:

dds <- DGEList(counts = x, genes = genes)
df <- data.framePatient.ID = factor(rep(1:3,each=2)), Treatment = factor(rep(c("Pre","On"),3),levels=c("Pre","On")))
countData <- dds$counts
dds <- DESeqDataSetFromMatrix(countData, DataFrame(df), ~ Patient.ID + Treatment )
dds <- DESeq(dds)
res <- results(dds, alpha = 0.05)

Design table:

  Patient.ID Treatment
1          1       Pre
2          1        On
3          2       Pre
4          2        On
5          3       Pre
6          3        On

Result of the above code:

out of 18545 with nonzero total read count
adjusted p-value < 0.05
LFC > 0 (up)     : 2531, 14% 
LFC < 0 (down)   : 2010, 11% 
outliers [1]     : 0, 0% 
low counts [2]   : 2145, 12% 
(mean count < 3)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results
deseq2 rna-seq differential expressed genes

1 answer

The absolute minimum number for things like this is 3, though in practice 6 or so samples per group is a much more useful minimum. It looks like you have the data from the same patient before and after treatment, which is an excellent setup. Your code is correct, it's testing for the effect of treatment while controlling for patient.

Thanks for your reply sir.

Can you please guide me regarding which criteria is used to decide whether a gene is up or down regulated? Is it log fold change (LFC in the results) ?

Also, the primary objective of my experiment is to identify genes that are affected before and after tumor. You reckon I'm doing it right?

Your opinion means a lot to me.

Yes, the sign on the fold-change dictates whether a gene is up or down regulated. Assuming Pre and On are before and after treatment then yes, you're doing things correctly.

Alright, thanks a lot sir.

I had to clarify a few basics.

  1. So the count matrix should be such that the first column contains the gene count of patient.id 1 before treatment and the second column contains the gene count of patient.id 1 after treatment and so on for the rest of the columns in the matrix, right?

  2. And for the gene.id i'm using the row numbers of the genes from the excel sheet rather than the gene names that way it is easy for me to extract only those specific genes for further experimentation. I've obtained the corresponding row numbers of the genes that are up or down regulated in the results. I'm assuming there is nothing wrong with my approach. Is there?

Sorry for the trouble.

  1. As long as the order in df matches the matrix then you're fine. The actual order of the columns are then irrelevant.
  2. That's fine. Normally we use things like Ensembl gene IDs, but any unique name or value will work. At the end of the day it just needs to be convenient for you to use.

If an answer was helpful you should upvote it, if the answer resolved your question you should mark it as accepted. Upvote|Bookmark|Accept

Log in to answer this question.