def subtract(bed1, bed2, bedOut):
if not bed2:
shutil.copyfile(bed1,bedOut)
return
with open(bed1) as f:
bed_dict1 = tk_io.get_target_regions(f)
with open(bed2) as f:
bed_dict2 = tk_io.get_target_regions(f)
bed_dict_subtract = {}
for chrom in bed_dict1:
if not chrom in bed_dict_subtract:
bed_dict_subtract[chrom] = tk_regions.Regions([])
for start, end in bed_dict1[chrom]:
overlappings = []
if chrom in bed_dict2:
overlappings = bed_dict2[chrom].overlapping_regions(start, end)
for interval in interval_subtract(start, end, overlappings):
bed_dict_subtract[chrom].add_region(interval)
writeOut(bed_dict_subtract, bedOut)
评论列表
文章目录