Differential gene expression anlaysis?
1
2
Entering edit mode
@1234anjalianjali1234-10835
Last seen 2.7 years ago

hi,

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.

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

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

#no normalization

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


#normalize
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)



library(gplots)

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

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))

VENN DIAGRAM

I need help.

rnaseq R normalization • 2.6k views
ADD COMMENT
1
Entering edit mode
@gordon-smyth
Last seen 7 hours ago
WEHI, Melbourne, Australia

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 COMMENT
0
Entering edit mode

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 REPLY
0
Entering edit mode

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

ADD REPLY

Login before adding your answer.

Traffic: 397 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6