Обратите внимание, что вы используете «Ключ» в своем коде, тогда как показанные вами входные данные имеют «Ключ».
Сначала мы моделируем некоторые данные, которые выглядят как ваши:
library(TxDb.Hsapiens.UCSC.hg19.knownGene)
g = genes(TxDb.Hsapiens.UCSC.hg19.knownGene)
g = g[seqnames(g) %in% seqlevels(g)[1:24]]
seqlevels(g) = sub("chr","",seqlevels(g))
merge3 = data.frame(GENE=rep(g$gene_id,2),
CHR=rep(as.character(seqnames(g)),2),
POS=rep(start(g),2),
LOGP=-log10(runif(length(g)*2)),
Key = rep(c("MAF1P-pval","CADD20-pval"),each=length(g))
)
merge3$CHR = factor(merge3$CHR,levels=seqlevels(g)[1:24])
head(merge3)
GENE CHR POS LOGP Key
1 1 19 58858172 0.04981794 MAF1P-pval
2 10 8 18248755 1.83126403 MAF1P-pval
3 100 20 43248163 0.46686285 MAF1P-pval
4 1000 18 25530930 0.96742037 MAF1P-pval
5 10000 1 243651535 0.31012565 MAF1P-pval
6 100008586 X 49217763 0.61290850 MAF1P-pval
Затем мы строим график:
bp = ggplot(merge3, aes(x=POS, y=LOGP, color=Key)) + geom_point(size=0.3) +
facet_grid(~CHR, switch="x", scales="free_x") +
theme(axis.text.x=element_blank(),axis.ticks.x=element_blank(), panel.spacing.x=unit(0.001, "lines"), panel.grid = element_blank(), panel.border = element_blank(), strip.background=element_rect(fill="white")) +
labs(title="stacked Manhattan MAF1P, CADD20", y="-log10(p)", x= "chromosome") +
scale_y_continuous(limits=c(0,12), expand = c(0,0)) +
geom_hline(yintercept=5.3, color = "red") +
geom_hline(yintercept=3.3, color = "blue")
Последняя часть, которая изменяет вашу легенду, поэтому ваши ключи отсортированный по алфавиту, чтобы сделать его менее запутанным, сначала установите цвета:
COLS=c("#d8b365", "#f5f5f5")
names(COLS) = levels(merge3$Key)
Затем мы используем разрывы, чтобы изменить порядок и дать метки:
bp+scale_color_manual(name="Gene Sets",values = COLS,
breaks = rev(names(COLS)),labels=c("MAF <= 1%","CADD >=20"))