X と Y の座標値を持つ data.frame があります。X 軸は位置情報、Y 軸は対数比の値です。ポイントは対数比の値に基づいて色分けされています (緑 > 0.25、-0.25 < グレー < 0.25、および赤 < -0.25)。オレンジ色の破線の水平線は、0.58、0、および -1 の log2 値です。
循環バイナリ セグメンテーション アルゴリズムは、対数比の変化をセグメント化し、青い水平線で示します。添付の画像では、0 の log2 に近い場合、いくつかのセグメントを見ることができます。図の左端近くには、0.58 に近い対数値を持つ小さな青いセグメントと、はるかに小さい (周囲の赤い点のためにほとんど見えない) があります。 ) -1 に近い対数値の青いセグメント (プロットの右端)。これらの青いセグメントの x 座標と y 座標を別の data.frame に持っています。以下を実現したい
1) -0.70 < log2 > 0.50 を超えるこれらの青いセグメントを囲む円を追加します。これは、見落とされる可能性のある小さなセグメントを識別するのに役立ちます。2) アルファ値を使用してこれらの円に透明色を追加し、青いセグメントが見えるようにします。3) 円のサイズは、これらの青いセグメントの幅に基づきます。
これらの青いセグメントを -0.70 < log2 > 0.5 で強調表示する他のアイデアも受け入れます。これらの青いセグメントが見つかったポイント (緑と赤) のプロットを抑制する必要があるかもしれません。このプロットを作成するために R を使用しています。助けに感謝します。
これは使用されたコードです: 2 つの df オブジェクトがあります。df(X) には、Chr.no、Chr.Start、Chr.End、および Log2 が含まれます。df(Y) は似ていますが、loc などの col.names が異なります。開始し、ロックします。終わり。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< log2 > 0.25 のセグメントのみです。この図では、小さな「青」のセグメントがプロットの端に近く、見つけにくいため、塗りつぶされた円で強調表示したいと思います。まだはっきりしない場合はお知らせください。ありがとう