Question: Differential gene expression anlaysis?
gravatar for 1234anjalianjali1234
4 weeks ago by
1234anjalianjali12340 wrote:


I am doing DEG analysis between two sample (Normal vs Treated) without replicates using edgeR. I know there is no significance of analysis without replicates, but i have no other choice.

I have gone through some literature and found some normalization methods, of which i decided to chose calcNormFactors method (which normalization method should i choose : TMM or RLE). I am not able to convert it into logfold change, what could be applied for this purpose: exact test?. in my current analysis i have applied exact test but this test:

Compute genewise exact tests for differences in the means between two groups of negative-binomially distributed counts.

The count matrix was generated by Corset, which gives the count matrix in Poisson distribution while i am applying exactTest which takes count matrix as negative binomial distribution. Should i carry on with this analysis only or use another test equivalent to exactTest for Poisson distributed count matrix? If there is any other test then what it is? THere is fisher.exact test equivalent to exact test but it takes 2X2 matrix into consideration.

y = read.table("counts.txt", header=T, row.names=1, com='')

sampleinfo <- read.delim("sample.txt")
group <- paste(sampleinfo$Status,sampleinfo$CellType,sep=".")
group <- factor(group)
keep <- rowSums(y > 0.5)>=2
y <- DGEList(y, group=group, genes=y[,1])
y <- y[keep, ,keep.lib.sizes = FALSE]

#no normalization

no_norm <- exactTest(y, dispersion=bcv^2)
table(p.adjust(no_norm$table$PValue, method="BH")<0.05)

TMM <- calcNormFactors(y, method = "TMM") 
bcv <- 0.2
TMM <- exactTest(TMM, dispersion=bcv^2)
table(p.adjust(TMM$table$PValue, method="BH")<0.05)

RLE <- calcNormFactors(y, method = "RLE") 
bcv <- 0.2
RLE <- exactTest(RLE, dispersion=bcv^2)
table(p.adjust(RLE$table$PValue, method="BH")<0.05)

uq <- calcNormFactors(y, method = "upperquartile") 
bcv <- 0.2
uq <- exactTest(uq, dispersion=bcv^2)
table(p.adjust(uq$table$PValue, method="BH")<0.05)


get_de <- function(x, pvalue){
  my_i <- p.adjust(x$PValue, method="BH") < pvalue

my_no_norm <- get_de(no_norm$table, 0.05)
my_tmm <- get_de(TMM$table, 0.05)
my_rle <- get_de(RLE$table, 0.05)
my_uq <- get_de(uq$table, 0.05)

gplots::venn(list(no_norm = my_no_norm, TMM = my_tmm, RLE = my_rle, UQ = my_uq))


I need help.

rnaseq normalization R • 103 views
ADD COMMENTlink modified 4 weeks ago by Gordon Smyth38k • written 4 weeks ago by 1234anjalianjali12340
Answer: Differential gene expression anlaysis?
gravatar for Gordon Smyth
4 weeks ago by
Gordon Smyth38k
Walter and Eliza Hall Institute of Medical Research, Melbourne, Australia
Gordon Smyth38k wrote:

Definitely, you should use exactTest or glmLRT and not try to use a Poisson test (although you can get an exact Poisson test simply by setting dispersion=0 in exactTest.)

I think you may have misinterpreted the role of the Poisson distribution in Corset. The counts can be viewed as Poisson for a single library in isolation, but variation in counts between samples is still negative binomial. The use of Corset does not eliminate biological variation. The Corset authors themselves used edgeR to assess differential expression, in the usual way as you would use edgeR to analyse read counts from any program.

Why would you not use TMM normalization? It is the default for calcNormFactors so it is obviously what we recommend.

ADD COMMENTlink modified 4 weeks ago • written 4 weeks ago by Gordon Smyth38k

Thankyou for your suggestion and to clear my doubts about distribution... I'll go with the exact test after CalcNormFactors with TMM normalization.... Is it ok to set dispersion=0 in exactTest?

ADD REPLYlink modified 4 weeks ago • written 4 weeks ago by 1234anjalianjali12340

No, it is not ok to set dispersion=0. Setting dispersion=0 is a Poisson test, which I advised you not to do

ADD REPLYlink modified 25 days ago • written 25 days ago by Gordon Smyth38k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 187 users visited in the last hour