view CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/site-packages/pybedtools/stats.py @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
line wrap: on
line source
import multiprocessing
from . import helpers
import pybedtools


def random_jaccard(x, y, genome_fn, shuffle_kwargs, jaccard_kwargs):
    z = x.shuffle(g=genome_fn, **shuffle_kwargs).sort()
    result = z.jaccard(y, **jaccard_kwargs)
    helpers.close_or_delete(z)
    return result


def random_intersection(x, y, genome_fn, shuffle_kwargs, intersect_kwargs):
    z = x.shuffle(g=genome_fn, **shuffle_kwargs)
    zz = z.intersect(y, stream=True, **intersect_kwargs)
    result = len(zz)
    helpers.close_or_delete(z, zz)
    return result


def random_intersection_bp(x, y, genome_fn, shuffle_kwargs, intersect_kwargs):
    z = x.shuffle(g=genome_fn, **shuffle_kwargs)
    zz = z.intersect(y, stream=True, **intersect_kwargs)
    result = sum(len(i) for i in zz)
    helpers.close_or_delete(z, zz)
    return result