0

我有以下格式的数据。V1 列是感兴趣的基因组位置,V4 和 V5 列是两个不同时间点的次要等位基因频率。我想制作一个简单的 xy 散点图,其中一条线连接从时间点 1 到时间点 2 的每个特定位置的等位基因频率(绘制在 y 轴上)。(注意,我实际上有成百上千的数据点)。

   V1    V2      V3          V4          V5
1 153 1/113   1/115 0.008849558 0.008695652
2 390 0/176 150/152 0.000000000 0.986842105
3 445 1/149   1/152 0.006711409 0.006578947
4 507 0/154 144/146 0.000000000 0.986301370
5 619 1/103  99/101 0.009708738 0.980198020
6 649 0/138 120/123 0.000000000 0.975609756

我觉得我应该能够使用 ggplot 完成此操作,但我不确定如何去做,因为我不知道如何为每个基因组位置指定两个 y 值,也不知道如何将列指定为类别. 我怀疑数据需要以某种方式重塑。非常感谢任何帮助或建议!


更新:

感谢所有给我建议的人。我不认为我很清楚希望时间点成为我的 x 轴而不是基因组位置 - 我很抱歉。希望这张照片能说明这一点!

我已经成功生成了我希望使用以下代码制作的图:

ggplot(dat) + geom_segment(aes(x="timepoint 1", y=V4, xend="timepoint2", yend=V5))

这就是带有更多数据点的情节......

等位基因轨迹

我还没有更改轴标题并使用边距,但这是一般的想法!

4

3 回答 3

1

如果您的示例数据位于 中DF,则

ggplot(DF) +
  geom_segment(aes(x=V4, y="timepoint 1", xend=V5, yend="timepoint 2"))

在此处输入图像描述

于 2013-11-08T22:57:24.680 回答
0
with(dat, plot(x=V1, y=V5, ylim=c(0,1) ,type='n',
      xaxt="n", ylab="Allele Frequency", xlab="Genomic Location"))
with(dat, axis(1, V1,V1, cex.axis=0.7)   )
with( dat, arrows(x0=V1,x1=V1+10, y0=V4, y1=V5) )

您可以清理标签并调整颜色和箭头功能:

?arrows

在此处输入图像描述

于 2013-11-08T23:01:07.720 回答
0

这个问题并不完全清楚,但我认为这就是你所追求的:

ggplot(d, aes(x=V1, y=V4, ymin=V4, ymax=V5)) 
  + geom_linerange() 
  + xlab('Genomic location') 
  + ylab('Minor allele frequency')

文档:http ://docs.ggplot2.org/current/geom_linerange.html

在此处输入图像描述

于 2013-11-08T23:17:23.963 回答