我有几组文件,我想根据标识符列、起始值和结束值进行比较。每个文件都有以下布局: 例如。
A 200 900
A 300 1200
B 100 700
B 900 1000
每个文件的标识符和值各不相同,我想比较 2 到 4 组这些文件的重叠。因此,如果另一个文件有“A 150 1000”,我会得到两个文件之间的重叠。
例如,如果我放入 4 个文件,每个文件有 100 行,我想知道每个文件之间重叠(或不重叠)的数量。
FileA only =
FileB only =
FileC only =
FileD only =
FileA and FileB =
FileA and FileC =
FileA and FileD =
FileA, FileB and FileC =
....
我的代码目前看起来像:
def ReadFile(FileName, LineCount, Ranges)
with open(FileName, "r") as FileName:
LineCount = 0
for Line in FileName:
if LineCount==0:
print "Skipping First Line"
else:
Line = Line.strip("\n").split("\t")
Chr = Line[0]
Start = int(Line[1])
End = int(Line[2])
ranges[Ident].append((Start, End))
LineCount+=1
FileNum = int(raw_input("Number of Files for Comparison"))
rangesA = rangesB = rangesC = rangesD =defaultdict(list)
ReadFile(FileA, LineCountA, rangesA)
ReadFile(FileB, LineCountB, rangesB)
if FileNum >= 3:
ReadFile(FileC, LineCountC, rangesC)
if FileNum >= 4:
ReadFile(FileD, LineCountD, rangesD)
如果要进行比较,我有点卡住了...