Question on performing filtering by gene expression on a normalized matrix in limma?
1
1
Entering edit mode
@mohammedtoufiq91-17679
Last seen 21 days ago
United States

Hello,

I am working with NanoString transcriptomics targeted data panel (containing 800 gene panel), the raw counts data was normalized in the nSolver Data Analysis software. I have the normalized data, and would like to use limma for further analysis like filtering and statistical modelling. I would like to perform filter by expression on the normalized data matrix, it seems like in limma this type of filtering could be performed only on the raw data (counts). Is there a functionality that I can use this normalized matrix in limma to perform filtering by gene expression.

For instance, the below functionality I use in RNA-Seq analysis:


dge <- DGEList(counts=counts)
The next step is to remove rows that consistently have zero or very low counts. One can for example use
keep <- filterByExpr(dge, design)
dge <- dge[keep,,keep.lib.sizes=FALSE]
dge <- calcNormFactors(dge)

Thank you in advance.

Toufiq

expression R filtering limma • 2.4k views
ADD COMMENT
1
Entering edit mode

The answer is probably yes, but it depends on what "normalized data" you have from nSolver. Do you have log-counts-per-million? Or something else? What exactly has the data been normalized for?

ADD REPLY
0
Entering edit mode

Gordon Smyth thank you for the response.

The data matrix is a normalized matrix (without log transformation). My collaborator has shared the steps how the normalization was performed:

1. Background subtraction - geometric mean of negative control
2. Positive control normalization - geometric mean
3. Housekeeping genes normalization - geometric mean
4. All pairwise ratios to build the baseline for FC estimation
ADD REPLY
0
Entering edit mode

Hi Toufiq,

I am trying to do the same thing as you with some NanoString data: I have a normalised count matrix from nSolver, normalised using geNorm, and want to perform DEG analysis with limma.

I have looked at the attached resources but I am still a bit confused with how to do this. Did you work out how to use limma/voom with normalised data instead of raw?

Thanks,

Emily

ADD REPLY
0
Entering edit mode

Emily

Hi, I used normalized data to log(norm.data, 2) > used in the limma package. Basically,

created a `design`
fit <- lmFit(y, design)
fit <- eBayes(fit)
ADD REPLY
2
Entering edit mode
@gordon-smyth
Last seen 1 hour ago
WEHI, Melbourne, Australia

Given that are you are working with a panel of only 800 targeted genes, I doubt you would need to do any filtering at all. However I have no experience with nSolver output and I can't give any specific advice on it.

You might find the following references useful:

ADD COMMENT
0
Entering edit mode

Gordon Smyth indeed this are helpful resources. I will go through this.

But in general, I work with other larger expression datasets too. If I need to import only the normalized data or log normalized, which function of the limma performs filtering. Thank you.

ADD REPLY
1
Entering edit mode

There isn't any function for filtering, but the same principles would apply as for any other technologies. You would filter if you can identify genes that seem to be never expressed.

ADD REPLY
0
Entering edit mode

Gordon Smyth thank you for your response.

ADD REPLY

Login before adding your answer.

Traffic: 338 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