【发布时间】:2014-09-15 12:18:10
【问题描述】:
我有两个要合并的文件。我想合并它们,以便第二列和第三列包含 22 条染色体中每一条的文件开始和停止位置,并为该文件找到相应的 Cn(第八列)结果。
文件 1
Chromosome Start End lengthMB probes snps imba log2 Cn mCn
chr1 0 121184898 121.185 11403 3272 0.263868683 -0.03922829 2 1
chr1 144028314 147376741 3.348 392 55 0.666732903 0.149629608 4 0
chr1 147376741 149815307 2.439 45 1 NA 0.081578404 3 0
chr1 149815307 152973261 3.158 355 98 NA 0.175954714 4 0
chr1 152973261 153223301 0.25 32 1 NA 0.250464238 5 0
chr1 153223301 164587468 11.364 910 270 NA 0.169542015 4 0
chr1 164587468 164680884 0.093 11 7 NA 0.110598177 3 0
chr1 164680884 167797512 3.117 265 82 0.619468523 0.178797081 4 0
chr1 167797512 168022812 0.225 10 1 NA 0.262534983 5 0
文件 2
Chromosome Start End lengthMB probes snps imba log2 Cn mCn
chr1 0 121184898 121.185 11405 3273 0.267231258 -0.040215328 2 1
chr1 144028314 147376741 3.348 393 55 0.649314008 0.156409264 4 0
chr1 147376741 149573557 2.197 44 1 NA 0.118886434 4 0
chr1 149573557 158729529 9.156 837 221 NA 0.193681628 4 0
chr1 158729529 158809353 0.08 13 1 NA 0.031239059 4 0
chr1 158809353 164628199 5.819 451 141 0.610374455 0.182849884 4 0
chr1 164628199 164836103 0.208 25 12 NA 0.253876895 4 0
chr1 164836103 165418619 0.583 61 16 NA 0.186622113 4 0
输出
Chromosome Start End Cn_File_1 mCn_File_1 Cn_File_2 mCn_File_2
chr1 0 121184898 2 1 2 0
chr1 144028314 147376741 4 0 4 0
chr1 147376741 149573557 3 0 4 0
chr1 149573557 149815307 3 0 4 0
chr1 149815307 152973261 4 0 4 0
chr1 152973261 153223301 5 0 4 0
chr1 153223301 158729529 4 0 4 0
chr1 158729529 158809353 4 0 4 0
chr1 158809353 164587468 4 0 4 0
chr1 164587468 164628199 3 0 4 0
chr1 164628199 164680884 3 0 4 0
chr1 164680884 164836103 4 0 4 0
chr1 164836103 165418619 4 0 4 0
到目前为止,我正在遍历所有染色体以在两个文件中找到相应染色体的正确起始值和终止值。然后我将两者的开始和停止放在一起,但我不确定如何找到正确的 Cn 值(在每个文件的第八列)。
for (i in 1:22) {
start1 <- file1$Chromosome == paste(chromosome,i, sep="")
start2 <- file2$Chromosome == paste(chromosome,i, sep="")
both_starts <- unique(sort(c(file1$Start[start1], file2$Start[start2])))
both_starts <- unique(both_starts)
both_stops <- unique(sort(c(file1$End[start1], file2$End[start2])))
both_stops <- unique(both_stops)
start <- append(start, both_starts)
stop <- append(stop, both_stops)
chr <- append(chr, rep(paste(chromosome, i, sep=""), length(both_starts)))
for (i in length(both_starts)) {
print(file1$Start[start1][i])
}
}
有什么想法吗?
【问题讨论】:
-
为什么没有
merge? -
您可以改用
match。