Question: sva + egdeR - differential expression analysis - RNA-seq data
gravatar for mrodrigues.fernanda
3.1 years ago by
United States
mrodrigues.fernanda30 wrote:

Dear list,
I am performing an RNA-seq analysis for differential gene expression and I have a question regarding the use of the package sva for the estimation of unknown batch effects.

In the sva vignette, it shows examples of using the package for estimation of surrogate variables and then performing DE analysis using the package limma (I am referring to the section 6 of the sva vignette: "Adjusting for surrogate variables using the limma package")

Is that possible to do the same using the package edgeR instead of limma?

Or is sva not compatible with edgeR?

Sorry if this is a dumb question. I am a little new to the bioinformatics world.


Thank you!!!

edger rna-seq sva • 2.7k views
ADD COMMENTlink modified 3.1 years ago by Devon Ryan88k • written 3.1 years ago by mrodrigues.fernanda30

For RNA-seq data, you should use the svaseq() function instead of sva(). That's true whether you're using limma voom, edgeR or DESeq. The author also recommends scaling and normalizing the counts before running SVA.

Basic example, assuming counts is your count matrix and clin is your clinical data file:

y <- DGEList(counts)
y <- calcNormFactors(y)
mod <- model.matrix(~ Condition, data=clin)
mod0 <- model.matrix(~ 1, data=clin)
svobj <- svaseq(cpm(y), mod, mod0) 
des <- cbind(mod, svobj$sv)

You can now proceed with des as your design matrix.

ADD REPLYlink written 2.4 years ago by d.watson0

Hi Watson, thanks for the reply. I have a question for next steps. So then we have des as design matrix: disp = estimateDisp (???, design) What should we use as data for estimateDisp?

ADD REPLYlink written 18 months ago by pwwang0
gravatar for h.mon
3.1 years ago by
h.mon23k wrote:

In my (shallow) understanding, no: sva manual suggests a log( g[ij] + c ) transformation, whereas edgeR uses the negative binomial to model read counts, and specifically states that only read counts should be used. You may use sva + voom + limma; or including batch effects on your glm model and proceedign with edgeR.

ADD COMMENTlink written 3.1 years ago by h.mon23k
gravatar for Devon Ryan
3.1 years ago by
Devon Ryan88k
Freiburg, Germany
Devon Ryan88k wrote:

You end up just adding columns to your model matrix in edgeR. Here's a similar discussion about SVA and DESeq2: Batch effect in DESeq2 - multiple factor or SVA?

The same principles apply.

ADD COMMENTlink written 3.1 years ago by Devon Ryan88k
Please log in to add an answer.


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