我正在为2个表型绘制曼哈顿图,因此我在数据框中融合了GWAS和GTEX列的数据,如下所示:
"https://something.com/share/"
问题是GTEX数据比GWAS小得多,因此我需要有两个y轴来表示它们。
我想使用这样的东西:
"https://something.com/share/"+id
但是我不确定如何在我的情况下实现。
现在这是我的代码:
pos.end GWAS GTEX
1 16975756 0.71848040 2.82508e-05
2 16995937 0.02349431 4.54958e-11
3 17001098 0.04310933 1.93264e-20
4 17001135 0.04354486 8.52552e-21
5 17002964 0.02352996 1.84111e-15
6 17005677 0.01046168 2.09734e-11
...
我需要2个Y轴,一个用于GWAS,另一个用于GTEX。 GTEX值远小于GWAS。
我用上面的代码进行绘制,看起来像这样:
![两个木偶] [1]
我厌倦了使用ggforce库中的locus.zoom(),但结果仍然不好。如何只获取缩放的GWAS值?
scale_y_continuous(sec.axis = sec_axis...
![一个布偶] [1]
按照我的建议,
library(dplyr)
library(ggplot2)
library(tibble)
library(ggrepel)
snpsOfInterest = c("17091307")
tmp = read.table("nerve_both_manh", header=T)
tmp.tidy <- tmp %>%
tidyr::gather(key, value, -pos.end) %>%
mutate(is_highlight = ifelse(pos.end %in% snpsOfInterest, "yes", "no")) %>%
mutate(is_annotate = ifelse(-log10(value) > 5, "yes", "no"))
ggplot(tmp.tidy, aes(pos.end, -log10(value), color = key)) +
geom_point(data = subset(tmp.tidy, is_highlight == "yes"),
color = "purple", size = 2)+
geom_label_repel(data = subset(tmp.tidy, is_annotate == "yes"),
aes(label = pos.end), size = 2)
但是我不知道如何整合这两行:
ggplot(tmp.tidy, aes(pos.end, -log10(value), color=key)) +
facet_zoom(xy = key == "GWAS")+
geom_point(data=subset(tmp.tidy, is_highlight=="yes"), color="purple", size=2)+
geom_label_repel( data=subset(tmp.tidy, is_annotate=="yes"), aes(label=pos.end), size=2)
如果在上面的代码中使用它,则会出现此错误:
ggplot(tmp.tidy) +
geom_count(aes(pos.end, -log10(value), color = key)) +
facet_wrap(~key, scales = "free") +
guides(size = FALSE) +
theme(
panel.background = element_rect(fill = "white", color = "grey90"),
panel.spacing = unit(2, "lines")
)
我试图这样做,但是什么也没发生:
geom_point(data=subset(tmp.tidy, is_highlight=="yes"), color="purple", size=2)+
geom_label_repel( data=subset(tmp.tidy, is_annotate=="yes"), aes(label=pos.end), size=2)+
答案 0 :(得分:1)
我试图用diamonds
数据集来估算您的问题。您可以在数据中添加一个标识符,然后在其上使用facet_wrap()
吗?
df <-
diamonds %>%
slice(1:2000) %>%
filter(price < 400 | price > 3000) %>%
mutate(type = ifelse(price < 500 & row_number() < 100, "GWAS", "GTEX"))
ggplot(df) +
geom_count(aes(table, price, color = type)) +
facet_wrap(~type, scales = "free") +
guides(size = FALSE) +
theme(
panel.background = element_rect(fill = "white", color = "grey90"),
panel.spacing = unit(2, "lines")
)
要在下面的每次会话中更新代码,请使用
geom_point(
data = subset(tmp.tidy, is_highlight == "yes"),
aes(x = pos.end, y = -log10(value)),
color = "purple", size = 2
) +
geom_label_repel(
data = subset(tmp.tidy, is_annotate == "yes"),
aes(x = pos.end, y = -log10(value), label = pos.end),
size = 2
)