RescalePseudoLog
Description
The RescalePseudoLog processing module is a simple signal procesor which rescale expression level as pseudo log.
Log transformation is convenient to vizualize data whose expression levels varies in a wide range of values, but zero values are common places in genomic data and log(base,0) is not defined.
We would thus need to recurse to pseudocount (typically arbitrarily adding 0.5).
Alternatively we can use pseudolog defined as asinh(x/2) / log(base), which has the following nice properties
- is defined for all real x values
- pseudolog(base, 0) = 0
- pseudolog(base, -x) = -1* pseudolog(base, x)
- pseudolog(base, x) ~ log(base, x) for x > base values
For information : pseudolog(10,1) = 0.2089876; log10(1) = 0 pseudolog(10,2) = 0.3827757; log10(2) = 0.3010300 pseudolog(10,3) = 0.5188791; log10(3) = 0.4771213 pseudolog(10,4) = 0.6269629; log10(4) = 0.6020600 pseudolog(10,5) = 0.7153834; log10(5) = 0.6989700 pseudolog(10,10) = 1.0042792; log10(10) = 1 pseudolog(10,100)= 2.0000430; log10(100)= 2 pseudolog(2,1) = 0.6942419; log2(1) = 0 pseudolog(2,2) = 1.2715533; log2(2) = 1 pseudolog(2,3) = 1.7236790; log2(3) = 1.584963 pseudolog(2,4) = 2.0827257; log2(4) = 2 pseudolog(2,5) = 2.3764522; log2(5) = 2.321928 pseudolog(2,10) = 3.3361433; log2(10) = 3.321928 pseudolog(2,100)= 6.6440004; log2(100)= 6.643856
Parameters
The sole optional parameter is the base of the pseudo log rescaling. By default, the rescaling base is set to 10
Example
Simple script...
<zenbu_script> <stream_queue> <spstream module="RescalePseudoLog"> <base>10</base> </spstream> </stream_queue> </zenbu_script>