Difference between revisions of "RescalePseudoLog"

From ZENBU documentation wiki
Jump to: navigation, search
(Description)
(Description)
Line 2: Line 2:
  
 
The '''RescalePseudoLog''' [[DataProcessing#Processing_modules|processing module]] is a simple signal procesor which rescale expression level as pseudo log.<br>
 
The '''RescalePseudoLog''' [[DataProcessing#Processing_modules|processing module]] is a simple signal procesor which rescale expression level as pseudo log.<br>
Log transformation is convenient to vizualize data whose expression levels varies in a wide range of values, but zero values are common places and log(base,0) is not defined and we would thus need to recurse to pseudocount (typically arbitrarily adding 0.5).
+
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.<br>
 
+
We would thus need to recurse to pseudocount (typically arbitrarily adding 0.5).<br>
Alternatively we can use pseudolog defined as '''asinh(x/2) / log(base)''', which
+
Alternatively we can use pseudolog defined as '''asinh(x/2) / log(base)''', which has the following nice properties
has the following nice properties
 
 
* is defined for all real x values
 
* is defined for all real x values
 
* pseudolog(base, 0) = 0
 
* pseudolog(base, 0) = 0

Revision as of 20:43, 21 May 2012

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>