我试图在基因组上绘制点:每个染色体都会有绘图点。我的数据文件如下所示:
CHROM BP P DP
1 234567 0.0000555 30
.....
Y 12345678 0.09 14
我使用gglopt2绘制每个染色体上由DP着色的P值,使用以下内容:
mc.points <- ggplot(sample,aes(x = BP,y = P, colour =DP)) +
geom_point() +
labs(x = "Chromosome",y = "P") +
scale_color_gradient2(low = "green", high = "red")
然而,不是在每个BP上以正确的染色体顺序绘制,而是由BP绘制而不考虑染色体数。
有没有办法对数据进行排序以实现这一目标(即按染色体排序然后是BP)?我试图制作CHROM和BP因子,但这似乎会使R崩溃。此外,如果可能的话,有一种方法可以将X轴上的X-tics标记为染色体数而不是BP(类似于曼哈顿情节)。
如果需要,我可以提供虚拟数据,但这很长。
只是提供更新: facet_grid似乎解决了我的问题,但我想知道我是否可以改变它?它通过染色体分割网格,但没有按连续顺序在相同的x轴上绘制它们 - 但是绘制了22个不同的图,使用相同的x轴。任何解决方案?????
答案 0 :(得分:0)
你是否在剧情之前尝试了一些未经测试的代码:
sample$BP <- factor(sample$BP,
levels=sample[ !duplicated(sample[,"BP"]), "BP"][
order(sample[!duplicated(sample[ ,"BP"]), "chromosome"] )]
)
如果您包含合适的样品进行测试,本来会更容易,也可能更紧凑。将来你不应该使用名称`sample&#34;因为它是一个重要的R函数名称。