Startと位置を持つ2つの大きなファイルとEnd、2つのサンプル列(数値)があります。
File 1:
Start  End  Sample1  Sample2
1         60      1       4
100       200     2       1
201       250     1       4
300       450     1       1
File 2:
Start  End  Sample1  Sample2
40         60      1       1
70        180      1       1
240       330      2       1
340       450      1       4
500       900      1       4
980       1200     2       1
まず、最初のファイルから最初のファイルStartとEnd位置を取得して、セグメントプロットを作成します。プロットでは、最初のファイルの各位置  も考慮に入れる必要がありStart-20ます。End+20
次に、2番目のファイルからオーバーラップ StartとEnd位置を取得し、上のプロットにプロットします。このようにして、最初のファイルのとの位置に基づいた多くのプロットがあり、オーバーラップのないものも個別にプロットされStartます。End
各セグメントのcolorは、2つのサンプル番号に基づきます(たとえば、両方のファイル1 and 4で、セグメントの色がredである場合、セグメント1 and 1の色がである場合greenなど)。
誰かが私にRでこれのために機能を作る方法を理解させてくれたら本当にありがたいです。
前もって感謝します。
 PS出力用の図面を添付しました。2つの結果のみを示しました。
PS出力用の図面を添付しました。2つの結果のみを示しました。
以下は私が書いたコードですが、エラーが発生します
match.names(clabs、names(xi))のエラー:名前が以前の名前と一致しません
また、dataset1の線分に赤色を指定し、dataset2の線分に緑色を指定する必要があります。以下のコードでどのように実装しますか?
overlap_func <- function(dataset1,dataset2) {
for(i in 1:nrow(dataset1))
 {
 loop_start <- dataset1[i,"Start"]
 loop_end <- dataset1[i,"End"]
 p <- dataset2[,c(1,2)]   
 dataset1_pos <- data.frame(loop_start,loop_end)
 dataset2_filter <- p[p$Start >= (loop_start-(loop_start/2)) & p$End <= (loop_end+ (loop_end/2)), ]
 data_in_loop <- rbind(dataset1_pos,dataset2_filter)
 plot_function(data_in_loop,loop_start,loop_end)
 }
 }
plot_function <- function(loop_data,start,end){ 
 pos <- 1:nrow(loop_data)
 dat1 <- cbind(pos,loop_data)
 colnames(dat1) <- c("pos","start","end")
 pdf(file=paste0("path where plots are generated","_",start,"-",end,"_","overlap.pdf"))
 plot(dat1$pos, type = 'n', xlim = range(c(start-(start/2), end+(end/2))))
 segments(dat1$start, dat1$pos, dat1$end, dat1$pos)
 dev.off()
 }
df1 <- read.table(header=T, text="Start  End  Sample1  Sample2
1         60      1       4
100       200     2       1
201       250     1       4
300       450     1       1")
df2 <- read.table(header=T, text="Start  End  Sample1  Sample2
40         60      1       1
70        180      1       1
240       330      2       1
340       450      1       4
500       900      1       4
980       1200     2       1")
 overlap_func(df1,df2)



