def get_bg_mats(fragsx, fragsy, sv_region, window_size):
bg_mats = {}
selectors = {"+":"end_pos", "-":"start_pos"}
binsx = numpy.arange(sv_region["startx"], sv_region["endx"]+window_size, window_size)
binsy = numpy.arange(sv_region["starty"], sv_region["endy"]+window_size, window_size)
for orientationx in "+-":
binx = numpy.digitize(fragsx[selectors[orientationx]], binsx)-1
gx = fragsx.groupby(binx)
bcsx = [set(gx.get_group(k)["bc"]) if k in gx.groups else set() for k in range(len(binsx))]
for orientationy in "+-":
biny = numpy.digitize(fragsy[selectors[orientationy]], binsy)-1
gy = fragsy.groupby(biny)
bcsy = [set(gy.get_group(k)["bc"]) if k in gy.groups else set() for k in range(len(binsy))]
bg_mats[orientationx+orientationy] = get_bg_mat(bcsx, bcsy)
return bg_mats
评论列表
文章目录