ggplot set scale_color_gradientn manualmente

Tengo un marco de datos como este

BP        R2      LOG10
96162057 0.2118000 2.66514431
96162096 0.0124700 0.31749391
96162281 0.0008941 0.07012148
96163560 0.5011000 2.48505399
96163638 0.8702000 3.37778598

y quiero trazar BP contra LOG10, y colorear los puntos con R2. R2 son valores continuos de 0-1.

myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() 

Hasta ahora tan bueno. Sin embargo, me gustaría mostrar los colores R2 en intervalos y colores seleccionados manualmente, como este (si tuviera valores discretos).

ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() + 
      scale_color_manual(breaks= c("1","0.8","0.6","0.4","0.2","0"), 
                values = c("red","yellow","green","lightblue","darkblue"))
Error: Continuous value supplied to discrete scale

Esto se ve bonito, pero prefiero establecer los colores yo mismo.

ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) + 
               scale_colour_gradientn(colours = rainbow(10))

Entonces, ¿cómo puedo seleccionar manualmente los intervalos de valores continuos (1-0.8, 0.8-0.6, 0.6-0.4, 0.4-0.2, 0.2-0) y colorearlos a mi gusto (rojo, amarillo, verde, claro, azul oscuro) ? Un gradiente suave entre los colores sería genial, pero no crucial.

Respuestas a la pregunta(2)

Su respuesta a la pregunta