我有一个带有X和Y坐标值的data.frame。 X轴是位置信息,Y轴是对数比值。这些点基于对数比值着色(绿色> 0.25,-0.25 <灰色<0.25,红色<-0.25)。橙色虚线水平线是log2值0.58,0和-1。
循环二进制分割算法分割对数比的变化,由水平蓝线表示。在附加的图像中,可以看到几个段,大多数是接近log2的0.靠近图的左端是小蓝色段,日志值接近0.58,并且小得多(由于周围的红点几乎看不见) )日志值接近-1的蓝色段(图的右边缘)。我在另一个data.frame中有这些蓝色段的x和y坐标。我想实现以下目标
1)添加将这些蓝色区段限定在-0.70以上的圆圈。 log2&gt; 0.50。这有助于识别可能遗漏的小段 2)使用Alpha值为这些圆圈添加透明色,以便看到蓝色片段 3)圆的大小将基于这些蓝色部分的宽度。
我也对在-0.70&lt; -0.70&lt; log2&gt; 0.5。也许我应该禁止绘制找到这些蓝色部分的点(绿色和红色)。我用R来制作这个情节。感谢帮助。
这是使用的代码:有两个df对象。 df(X)包含Chr.no,Chr.Start,Chr.End和Log2。 df(Y)类似,但不同的col.names如loc。开始,和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是的,“颜色”是“浅绿色”,“灰色”和“红色”的向量。这些是图(x,y)中pch = 16的颜色信息。我不想修改pch = 16分。水平的“蓝色”线段由'rect'添加,它们跨越许多pch = 16点。正如你所看到的,有许多“蓝色”段,一些非常小,一些大的长度,它们的log2值不同。这就是我想用填充的透明圆圈绑定的。不是所有的“蓝色”片段,而只是“蓝色”片段0.25&lt; log2&gt; 0.25。在这个图中,较小的“蓝色”片段靠近绘图的边缘,并且由于它们很难被发现,我想用它们周围的实心圆圈突出显示它们。如果我还不清楚,请告诉我。感谢
答案 0 :(得分:0)
(删除了基于猜测蓝点(真正是段)的方式的错误方法。)
编辑:根据新信息,我建议绘制普通的“点”,即由(xleft + xright)/ 2形成的x向量处的空心圆和使用ytop的y向量(应该是相同的ybottom)每个符合您标准的选定ytop值。您可以创建一个逻辑向量来选择这些向量中的每一个。所以:
selvec <- ytop < -0.70 | ytop > 0.5
points ( x= (xleft[selvec]+xright[selvec])/2, y= ytop[selvec], cex =1.5, col="blue")
如果使用rgb()函数创建具有透明度的颜色,也可以使用透明度:
points ( x= (xleft[selvec]+xright[selvec])/2, y= ytop[selvec], cex = 2, col=rgb(0, 0, 1, 0.3) )
如果你的输出设备支持它,....应该给你透明的圈子。