This function rescales values x
based on quantiles specified by the user such that x' = (x  q1) / (q2  q1) where q is the specified quantile, q1 = q / 2, q2 = 1  q/2) and x' are the new rescaled values.
1 
x 

na.rm 

q 
Quantile (must lie in [0,1]). 
In order to rescale gene expressions, q = 0.05
yielded comparable scales in numerous breast cancer microarray datasets (data not shown).The rational behind this is that, in general, 'extreme cases' (e.g. low and high proliferation, high and low expression of ESR1, ...) are often present in microarray datasets, making the estimation of 'extreme' quantiles quite stable. This is specially true for genes exhibiting some multimodality like ESR1 or ERBB2.
Vector of rescaled values with two attributes q1
and q1
containing the values of the lower and the upper quantiles respectively.
Benjamin HaibeKains
1 2 3 4 5 6 7 8 9 10 11 12 13 14  ## load VDX dataset
data(vdxs)
## load NKI dataset
data(nkis)
## example of rescaling for ESR1 expression
par(mfrow=c(2,2))
hist(data.vdxs[ ,"205225_at"], xlab="205225_at", breaks=20,
main="ESR1 in VDX")
hist(data.nkis[ ,"NM_000125"], xlab="NM_000125", breaks=20,
main="ESR1 in NKI")
hist((rescale(x=data.vdxs[ ,"205225_at"], q=0.05)  0.5) * 2,
xlab="205225_at", breaks=20, main="ESR1 in VDX\nrescaled")
hist((rescale(x=data.nkis[ ,"NM_000125"], q=0.05)  0.5) * 2,
xlab="NM_000125", breaks=20, main="ESR1 in NKI\nrescaled")

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.