change all the negative value into positive value
1
0
Entering edit mode
yueli7 ▴ 10
@yueli7-8401
Last seen 7 weeks ago
China

Hello,

I have a protein matrix, and want to use the justvsn function to normalize it.

After normalization, I found all the data are negative, the downstream function only works on positive value.

How can I change the parameter of vsn , them the output can be positive value?

Thank you in advance for great help!

Best,

Yue

vsn • 308 views
3
Entering edit mode
@wolfgang-huber-3550
Last seen 5 days ago
EMBL European Molecular Biology Laborat…

Dear Yue,

I'm assuming that your data come in arbitrary units, i.e., are not measured in kilograms, moles or similar. The vsn transformation is, in the limit of large values (much larger than the inferred level of background noise), the same as a logarithm transformation, and I'm sure you're familiar with the relation $$\log( ax ) = \log(x) + \log(a).$$ So you can always "lift" the result of calling vsn on your data $x$ into the range of positive values by multiplying them with some arbitrary, large enough, constant factor $a$ before calling vsn, or by adding a large positive constant afterwards. However, I'm worried that your downstream function is not applicable to these data, since such arbitrary choices (multiplying all values by the same constant) should not impact the result, if the result is to be meaningful. You may have to invest more thought or get consultation on a physically & statistically adequate choice of tool chain.

Wolfgang

0
Entering edit mode

Wolfgang Huber

Dear Wolfgang,

Thank you so much for your so detail explanation!

My data is protein SILAC ratio light/heavy data. Just as yo said, the value is too small.

I I tried to normalize the data, and then use Deseq2 to find the diffferentially expressed proteins. I used VSN, Rlr(performGlobalRLRNormalization), LoessF (performCyclicLoessNormalization), median(globalIntensityNormalization). Of course, vsn2 has the best perform.

Would you please give me some ideas to deal with this kind of data?

Thank you in advance for our great help and really appreciated!

Best,

Yue

1
Entering edit mode

DESeq2 is strictly for count data, which you can recognize by the fact that they are non-negative integer numbers. It is not intended for (quasi)-continuous data. For general differential abundance testing, please use limma.

A workflow of vsn2 followed by limma seems reasonable for your use case, although of course I cannot comment on the suitability (i.e., quality) of your specific data. The package arrayQualityMetrics or at least some of the plots it suggests (e.g. https://www.huber.embl.de/arrayQualityMetrics/Report_for_nCCl4/) may be useful.

0
Entering edit mode

Hello Wolfgang,

Thank you so much for your great help!

Thank you1

Best，

Yue