【发布时间】:2012-09-08 18:59:42
【问题描述】:
我有一个带有 X 和 Y 坐标值的 data.frame。 X 轴是位置信息,Y 轴是对数比率值。这些点是基于对数比率值着色的(绿色 > 0.25、-0.25
圆形二元分割算法以对数比率分割变化,由水平蓝线表示。在附图中可以看到几个片段,大多数接近 log2 为 0。靠近图左端的是小的蓝色片段,log 值接近 0.58,还有一个小得多(几乎看不见,因为周围的红点) 对数值接近 -1 的蓝色段(图的右边缘)。我在另一个 data.frame 中有这些蓝色段的 x 和 y 坐标。我想实现以下目标
1) 在 -0.70 0.50 上方添加包围这些蓝色线段的圆圈。这有助于识别可能遗漏的小部分 2) 使用 alpha 值向这些圆圈添加透明颜色,以便看到蓝色段 3) 圆圈的大小取决于这些蓝色线段的宽度。
我也对在 -0.70 0.5 处高亮这些蓝色段的其他想法持开放态度。也许我应该禁止绘制找到这些蓝色段的点(绿色和红色)。我正在使用 R 来制作这个情节。感谢您的帮助。
这是使用的代码:有两个 df 对象。 df(X) 包含 Chr.no、Chr.Start、Chr.End 和 Log2。 df(Y) 类似,但 col.name 不同,例如 loc。开始,然后定位。结尾。而不是 Log2,它们有 seg.mean 值
for (i in 1:25) { # Plot each chromosome separately
plot(X[which(X$Chr.No ==i),"Chr.Start"], X[which(X$Chr.No ==i),"Log2"], ylim=c(-4.0,4.0), col=X[which(X$Chr.No ==i),"Color"], pch=16, cex=0.4, ylab="Log2", xlab="Genomic Position", main= paste("KCL:180522_SS", "chromosome", i, sep=" "))
abline(h=c(-1,0,log2(3/2)), lty=2, col="chocolate")
xleft = Y[which(Y$Chr.No ==i),"loc.start"] # Left limit of the blue horizontal line
xright = Y[which(Y$Chr.No ==i),"loc.end"] # Right limit of the blue horizontal line
ybottom= Y[which(Y$Chr.No ==i),"seg.mean"] - 0.010 # Adding thickness to the "seg.mean"
ytop = Y[which(Y$Chr.No ==i),"seg.mean"] + 0.010 # Adding thickness to the "seg.mean"
rect(xleft=xleft, ybottom=ybottom, xright=xright, ytop=ytop, col="blue", border="blue")
}
@Dwin 是的,“Color”是“lightgreen”、“grey”和“red”的向量。这些是 plot(x,y) 中 pch=16 的颜色信息。我不想修改 pch=16 点。水平“蓝色”线段由“矩形”添加,它们跨越许多 pch=16 点。正如您所看到的,有许多“蓝色”段,一些非常小,一些长度很大,它们的 log2 值不同。这就是我想用一个填充的透明圆圈来绑定的。不是所有的“蓝色”段,而是只有“蓝色”段 0.25 0.25 的段。在这个图中,较小的“蓝色”部分靠近情节的边缘,因为它们很难被发现,我想用一个实心圆圈围绕它们来突出它们。如果我仍然不清楚,请告诉我。谢谢
【问题讨论】:
-
用于制作此图的代码可能会提供有关使用了三个图形系统中的哪一个的线索。需要这些信息,因为它们有不同的设置用户坐标的方式。
-
@Dwin 添加了使用的代码。感谢观看