Usando dos gradientes de color de escala ggplot2

Si hay alguno, creo que debe haber una solución muy fácil para esto. Tengo dos grandes marcos de datos que básicamente se parecen a estos:

> data1[1,]
      chromosome start    end      test ref position log2      p.value 
13600 Y          10199251 10200750 533  616 10200000 0.2181711 0.00175895   
...

> data2[1,]
      chromosome start    end      test ref position log2       p.value 
4080  Y          10197501 10202500 403  367 10200000 0.04113596 0.3149926   
...

Estoy usando este código para trazar los dos marcos de datos en el mismo gráfico:

p <- ggplot() + geom_point(data=subset(data1, p.value >= glim[1]),
map=aes(x=position, y=log2, colour=p.value))
+ geom_point(data=subset(data2, p.value >= glim[1]), map=aes(x=position,
y=log2, colour=p.value))

Cuando estaba trazando cuadros de datos individuales, estaba usando un gradiente de color rojo-blanco para los valores en la columna "p.value". Usando esta línea:

p <- p + scale_colour_gradient(limits=glim, trans='log10', low="red", 
high="white") 

El problema central es: ahora, con dos marcos de datos, ¿cómo puedo configurar un gradiente de color para datos1 y otro para datos2? Leí en una publicación anterior que no es posible usar dos escalas de color diferentes (ej. "Low =" para la primera, y "high =" para la segunda), pero en este caso es exactamente el mismo tipo de escala de color (Si no estoy mezclando terminología). La sintaxis obviamente no es correcta, pero me gustaría hacer algo como esto:

p <- p + scale_colour_gradient(limits=glim, trans='log10', low="red", 
high="white") 

p <- p + scale_colour_gradient(limits=glim, trans='log10', low="blue", 
high="white") 

Respuestas a la pregunta(1)

Su respuesta a la pregunta