Punkty kodowania kolorów oparte na percentylu w ggplot

Mam kilka bardzo dużych plików, które zawierają pozycję genomową (pozycję) i odpowiednią statystykę genetyczną populacji (wartość). Pomyślnie wykreśliłem te wartości i chciałbym oznaczyć kolor 5% (niebieski) i 1% (czerwony) wartości. Zastanawiam się, czy istnieje prosty sposób na zrobienie tego w R.

Zbadałem pisanie funkcji definiującej kwantyle, jednak wiele z nich nie jest unikatowych, co powoduje, że funkcja kończy się niepowodzeniem. Zajrzałem też do stat_quantile, ale udało mi się to wykorzystać tylko do wykreślenia linii oznaczającej 95% i 99% (a niektóre linie były po przekątnej, co nie miało dla mnie żadnego sensu.) (Przepraszam, jestem nowy w R.)

Każda pomoc byłaby bardzo mile widziana.

Oto mój kod: (pliki są bardzo duże)

########Combine data from multiple files
fst <- rbind(data.frame(key="a1-a3", position=a1.3$V2, value=a1.3$V3), data.frame(key="a1-a2", position=a1.2$V2, value=a1.2$V3), data.frame(key="a2-a3", position=a2.3$V2, value=a2.3$V3), data.frame(key="b1-b2", position=b1.2$V2, value=b1.2$V3), data.frame(key="c1-c2", position=c1.2$V2, value=c1.2$V3))


########the plot
theme_set(theme_bw(base_size = 16))

p1 <- ggplot(fst, aes(x=position, y=value)) + 
  geom_point() + 
  facet_wrap(~key) +
  ylab("Fst") + 
  xlab("Genomic Position (Mb)") +
  scale_x_continuous(breaks=c(1e+06, 2e+06, 3e+06, 4e+06), labels=c("1", "2", "3", "4")) +
  scale_y_continuous(limits=c(0,1)) +
  theme(plot.background = element_blank(),
    panel.background = element_blank(),
    panel.border = element_blank(),
    legend.position="none",
    legend.title = element_blank()
    )
p1

questionAnswers(3)

yourAnswerToTheQuestion