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