Hi everyone!
I am analyzing dataset GSE49515 and have obtained the preprocessed series matrix, which contains normalized, log-transformed values.
However, I have noticed the presence of negative values in this matrix, and I am unsure if these negative values are a result of background correction or log transformation. Unfortunately, I am unable to analyze the CEL files.
Can I proceed with these negative values for the purpose of performing differential expression analysis using Limma? If not, should I replace the negative values with zero or NA? Or can I add the minimum value to all values? Or if you know another better way I appreciate if you tell me.
What about negative values that are not log transformed? Should I do any thing special for them? should I use the following code for log transformation of them?
There are no negative values on the unlogged scale for the dataset in your question.
Please follow documented limma pipelines. There is never any need for ad hoc code like you mention.
However, I cannot use the preprocessing methods mentioned in the limma documentation. I am using the submitter-supplied data from GEO (series matrix), which I read using the getGEO function in R. Some preprocessing procedures have already been performed on this data. In some datasets, such as GSE164174, there are negative unlogged values. As you know, certain background correction procedures can result in negative expression values. These negative values lead to NaN values during log transformation. I would like to know how to handle this issue. Can I add the minimum value to all values to make them zero or greater? Can I use the previously mentioned code to accomplish this?
The submitter supplied expression values for GSE164174 are already on the log-scale. You don't need to do anything. You should not be logging again so there will be no NAs. As already noted, limma handles the negative values without any problem.
If there were background-corrected unlogged values that were negative, then that would be handled by limma's
backgroundCorrect()
function withmethod="normexp"
. As I say, there is never any need to do your own ad hoc background correction.