Comment affecter votre échelle de couleurs sur les données brutes dans heatmap.2 ()

J'ai des données qui ressemble à ceci:

                         Name    h1    h2    h3    h4    h5
1            1420468_at_Asb17 0.000 2.328 0.000 0.000 0.000
2    1430261_at_1700024J04Rik 1.236 2.050 0.000 0.000 0.000
3           1431788_at_Fabp12 0.000 2.150 0.000 0.000 0.587
4    1433187_at_B230112I24Rik 0.000 2.240 1.343 0.000 1.383
5        1434430_s_at_Adora2b 0.000 2.006 1.459 0.000 1.272
6           1435217_at_Gm7969 0.727 2.350 1.494 0.976 0.000
7          1436717_x_at_Hbb-y 0.000 2.712 0.000 0.000 0.000
8            1440859_at_Akap6 0.000 2.053 0.000 0.000 1.840
9              1442625_at_--- 0.000 2.064 1.173 0.000 1.035
10           1443715_at_Rbm24 0.969 2.219 0.000 0.000 0.000
11             1445520_at_--- 0.000 2.497 0.000 0.000 0.000
12          1446035_at_Gm7173 0.000 3.869 0.000 0.000 0.000
13   1446597_at_6820445E23Rik 1.000 2.000 0.000 0.000 0.000
14          1448925_at_Twist2 0.000 2.089 0.938 0.000 0.000
15        1449711_at_Atp6v1e1 0.605 2.363 2.350 1.094 0.976
16          1455931_at_Chrna3 0.000 2.354 0.000 0.000 0.000
17 1457647_x_at_1600023N17Rik 0.000 2.734 0.000 0.000 1.812
18             1458975_at_--- 0.000 2.079 0.000 0.000 0.000
19             1459862_at_--- 0.727 2.606 0.000 0.000 1.151

Remarque dans cette base de données (et le réel) il n'y a pas de valeurs négatives et les valeurs positives
peut être aussi grand que 100.

Ce que je veux faire est de tracer la carte de la chaleur avec ma propre échelle de couleurs et de régime:

  1. Lorsque la valeur est 0 le mettre en blanc.
  2. Lorsque la valeur est == 1 dans le noir.
  3. Lorsque la valeur est > 1 dans l'ombre de rouges.
  4. Lorsque la valeur est < 1 > 0 dans l'ombre de la verdure.

également sans l'aide de toutes les données de mise à l'échelle ou intégré dans le z-score de la transformation.
Comment puis-je y parvenir?

Mon code actuel est: est-ce

library(gplots)

# Read data
dat <- read.table("http://dpaste.com/1501148/plain/",sep="\t",header=T);
rownames(dat) <- dat$Name
dat <- dat[,!names(dat) %in% c("Name")]

# Clustering and distance measure functions
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) dist(x,method="maximum")

#  Define colours
hmcols <- rev(redgreen(2750));

# Plot 
pdf("~/Desktop/tmp.pdf",height=10)
heatmap.2(as.matrix(dat),Colv=FALSE,dendrogram="row",scale="row",col=hmcols,trace="none", margin=c(5,10), hclust=hclustfunc,distfun=distfunc,lwid=c(1.5,2.0),keysize=1);
dev.off()

Qui produit la suite de l'intrigue, où il utilise la valeur par défaut z-score de la ligne de mise à l'échelle.

Comment affecter votre échelle de couleurs sur les données brutes dans heatmap.2 ()

source d'informationauteur neversaint