regions

crystal.regions is used to evaluate (model) existing clusters from a BED file rather than finding and then modeling clusters.

crystal.regions.region_cluster_gen(features, regions_bed)[source]

Generate clusters from regions defined in a BED file.

Useful for re-testing existing regions–no need to use a clustering method, just yield ‘clusters’ of sites that fall within the regions in regions_bed.

features: a generator of features regions_bed: a bed file

regions are read into memory, but feature_gen is sorted.

>>> from crystal import Feature
>>> feats = [Feature('chr1', i, []) for i in [1, 10, 20, 25, 200, 1000, 1001]]
>>> feats.append(Feature('chr2', 999, []))
>>> with open('/tmp/zxzz.bed', 'w') as fh:
...  fh.write('chr1\t5\t25\nchr1\t25\t26\nchr1\t999\t1002\nchr2\t999\t1002\n')
>>> for cluster in region_cluster_gen(feats, fh.name):
...    print(cluster)
[Feature(chr1:25)]
[Feature(chr1:10), Feature(chr1:20), Feature(chr1:25)]
[Feature(chr1:1000), Feature(chr1:1001)]
[Feature(chr2:999)]