Skip to content

Instantly share code, notes, and snippets.

@alexpreynolds
Last active December 20, 2015 11:59
First-fit bin packing for gapped genomic data
#!/usr/bin/env python
''' Using first-fit bin packing algorithm implementation from: https://bitbucket.org/kent37/python-tutor-samples/src/f657aeba5328/BinPacking.py '''
class Bin(object):
def __init__(self):
self.elements = []
self.size = 0
self.index = 0
def append(self, element_key, element_value):
self.elements.append(element_key)
self.size += int(element_value)
def __len__(self):
len(self.elements)
def __str__(self):
return 'Bin(size=%d\n\tnumber_of_elements=%d\n\telements=%s)' % (self.size, int(len(self.elements)), self.elements)
def pack(elements, maximum_bin_size):
bins = []
bin_count = 0
for element in elements:
elem_range = element[0]
elem_size = element[1]
for bin in bins:
if bin.size + elem_size <= maximum_bin_size:
bin.append(elem_range, elem_size)
break
else:
bin = Bin()
bin.append(elem_range, elem_size)
bin.index = bin_count
bins.append(bin)
bin_count += 1
return bins
if __name__ == '__main__':
import sys
import numpy
import random
elements = {}
bins = int(sys.argv[2])
fudge = float(sys.argv[3])
with open(sys.argv[1]) as f:
for line in f:
(chr, start, stop, size) = line.split()
key = chr + ":" + start + "-" + stop
value = int(size)
elements[key] = value
sorted_elements = sorted(elements.items(), key=lambda x: x[1], reverse=True)
largest_element_size = sorted_elements[0][1]
maximum_per_bin_size = int(numpy.ceil(largest_element_size / bins / fudge) * fudge)
print '---------------------------------------------------'
packed_bins = pack(sorted_elements, maximum_per_bin_size)
print 'Via sorted elements -- using', len(packed_bins), 'of', bins, 'bins ( max_size:', maximum_per_bin_size,'):'
bin_sizes = numpy.arange(len(packed_bins))
for bin in packed_bins:
print bin
bin_sizes[bin.index] = bin.size
print 'Size std dev --', numpy.std(bin_sizes)
print '---------------------------------------------------'
random_elements = sorted(elements.items(), key=lambda x: random.random())
packed_bins = pack(random_elements, maximum_per_bin_size)
print 'Via randomly shuffled elements -- using', len(packed_bins), 'of', bins, 'bins ( max_size:', maximum_per_bin_size,'):'
bin_sizes = numpy.arange(len(packed_bins))
for bin in packed_bins:
print bin
bin_sizes[bin.index] = bin.size
print 'Size std dev --', numpy.std(bin_sizes)
@alexpreynolds
Copy link
Author

$ first_fit.py hg19.gapped_extents.bed 100 1e8
---------------------------------------------------
Via sorted elements -- using 29 of 100 bins ( max_size: 100000000 ):
Bin(size=115591997
    number_of_elements=1
    elements=['chr4:75452279-191044276'])
Bin(size=100537107
    number_of_elements=1
    elements=['chr3:93504854-194041961'])
Bin(size=99997102
    number_of_elements=4
    elements=['chr14:19000000-107289540', 'chr1:223797846-235192211', 'chr17:0-296626', 'chrM:0-16571'])
Bin(size=99994010
    number_of_elements=3
    elements=['chr2:149790582-234003741', 'chr4:59789333-75427379', 'chr9:40283029-40425834'])
Bin(size=99995353
    number_of_elements=3
    elements=['chr10:51448845-125869472', 'chr13:86910324-112353994', 'chr21:10084920-10215976'])
Bin(size=99980176
    number_of_elements=2
    elements=['chr1:30028082-103863906', 'chr20:34947085-61091437'])
Bin(size=99999694
    number_of_elements=4
    elements=['chr12:37856694-109373470', 'chr17:34725848-62410760', 'chrY:231384-997557', 'chr6:157609467-157641300'])
Bin(size=99991981
    number_of_elements=3
    elements=['chr13:19020000-86760324', 'chr8:12141854-43838887', 'chrY:13193954-13748578'])
Bin(size=99992047
    number_of_elements=2
    elements=['chr2:21178113-87668206', 'chr6:62178589-95680543'])
Bin(size=99992587
    number_of_elements=3
    elements=['chr3:60000-66170270', 'chr18:18510898-52059136', 'chr15:22262114-22596193'])
Bin(size=99982376
    number_of_elements=3
    elements=['chr6:95830543-157559467', 'chrX:76703692-113517668', 'chr2:3579312-5018788'])
Bin(size=99990235
    number_of_elements=4
    elements=['chr6:60000-58087659', 'chr9:92678796-133073060', 'chrY:22419679-23901428', 'chrX:144821-231384'])
Bin(size=99975463
    number_of_elements=4
    elements=['chr1:149509645-205922707', 'chr5:49405641-91636128', 'chr8:46838887-48130499', 'chr1:227417-267719'])
Bin(size=99985520
    number_of_elements=3
    elements=['chr8:86726451-142766515', 'chr16:46385801-88389383', 'chr10:49195536-51137410'])
Bin(size=99995378
    number_of_elements=4
    elements=['chr15:29209443-82829645', 'chr9:10000-39663686', 'chrY:13798578-20143885', 'chr9:68137998-68514181'])
Bin(size=99986355
    number_of_elements=3
    elements=['chr7:282484-50370631', 'chr11:1212759-50783853', 'chr15:21885000-22212114'])
Bin(size=99998252
    number_of_elements=4
    elements=['chr5:91686128-138787073', 'chr2:110251337-149690582', 'chr12:109423470-122530623', 'chr9:45865521-46216430'])
Bin(size=99995802
    number_of_elements=4
    elements=['chr11:96437584-134946516', 'chr8:48135599-86576451', 'chr4:9324642-31820917', 'chr9:42663955-43213698'])
Bin(size=99998292
    number_of_elements=5
    elements=['chr19:27731782-59118983', 'chr22:20609431-50364777', 'chr7:100606043-130154523', 'chr7:130254523-139379377', 'chr1:249058210-249240621'])
Bin(size=99999944
    number_of_elements=5
    elements=['chr5:17580657-46405641', 'chr21:14338129-42955559', 'chr12:7239876-34856694', 'chr2:95326171-110109337', 'chr9:47160133-47317679'])
Bin(size=99997307
    number_of_elements=5
    elements=['chrX:10788674-37098256', 'chr20:60000-26319569', 'chr7:74765724-100556043', 'chr9:70835468-92343416', 'chr21:9645548-9775437'])
Bin(size=99968998
    number_of_elements=6
    elements=['chr5:155188727-180905260', 'chr16:8686921-34023150', 'chr3:66270270-90504854', 'chrX:120063235-143507324', 'chr9:41415793-42613955', 'chrY:13104553-13143954'])
Bin(size=99981339
    number_of_elements=6
    elements=['chr17:396626-21566608', 'chr10:18024675-38818835', 'chr18:52209136-72283353', 'chr10:60000-17974675', 'chr11:69774695-87688378', 'chrX:113567668-115682290'])
Bin(size=99999824
    number_of_elements=7
    elements=['chr5:10000-17530657', 'chr15:85034473-102521392', 'chr1:206482221-223747846', 'chr1:103913906-120697156', 'chr5:138837073-155138727', 'chr11:54694205-69089801', 'chr10:133431404-133677527'])
Bin(size=99992310
    number_of_elements=9
    elements=['chr18:10000-15410898', 'chr17:62460760-77546461', 'chrX:61682012-76653692', 'chr1:235242211-248908210', 'chr7:61967157-74715724', 'chr1:17175658-29878082', 'chrX:37148256-49242997', 'chrX:149082062-152277099', 'chr1:144274481-144401744'])
Bin(size=99996624
    number_of_elements=11
    elements=['chr19:8737198-20523415', 'chr2:5118788-16279724', 'chr7:143397897-154270634', 'chr6:157691300-167942073', 'chr12:122580623-132706992', 'chr17:25263006-34675848', 'chr1:3995268-13052998', 'chr4:40297096-49338941', 'chr16:60000-8636921', 'chr11:87738378-96287584', 'chr1:2684220-3845268'])
Bin(size=99993478
    number_of_elements=17
    elements=['chr7:50410631-58054331', 'chr8:10000-7474649', 'chr4:32840638-40296396', 'chr4:1478646-8799203', 'chr19:60000-7346004', 'chr4:52660117-59739333', 'chr12:145739-7189876', 'chrY:2068238-8914955', 'chrX:52445914-58582012', 'chr2:234053741-239801978', 'chr15:23564853-29159443', 'chrX:2118238-7623882', 'chrX:143557324-148906424', 'chr20:29803908-34897085', 'chrY:23951428-28819361', 'chr2:10000-3529312', 'chr1:146214650-146253299'])
Bin(size=99995625
    number_of_elements=35
    elements=['chr2:16329724-21153113', 'chr7:154370634-159128663', 'chr10:128766069-133381404', 'chr8:7524649-12091854', 'chrX:115732290-120013235', 'chr19:20573415-24631782', 'chr3:194047251-197962430', 'chr10:42596687-46426964', 'chr9:133223060-137041193', 'chr22:16847850-20509431', 'chr1:13607162-17125658', 'chr21:44682664-48119895', 'chr18:72333353-75721820', 'chrX:7673882-10738674', 'chrX:152327099-155260560', 'chr10:125919472-128616069', 'chr7:139404377-142048195', 'chr8:142816515-145332588', 'chrX:50024173-52395914', 'chr2:240809132-243102476', 'chr18:75771820-78017248', 'chr6:168042073-170279972', 'chrY:20193885-22369679', 'chr1:521368-2634220', 'chr17:77596461-79709049', 'chr15:82879645-84984473', 'chr9:137091193-139166997', 'chr9:139216997-141153431', 'chr2:87718206-89630436', 'chr16:88439383-90294753', 'chr13:112503994-114325993', 'chr10:133727527-135524747', 'chr1:146303299-148026038', 'chr20:61263369-62965520', 'chr10:48105707-49095536'])
Bin(size=45444001
    number_of_elements=114
    elements=['chr21:43005559-44632664', 'chr17:79759049-81195210', 'chr4:10000-1423146', 'chr19:7396004-8687198', 'chr16:34173150-35285801', 'chr11:60000-1162759', 'chr12:132806992-133841895', 'chr1:144810724-145833118', 'chr7:142326197-143347897', 'chr4:31837417-32834638', 'chr10:46476964-47429169', 'chr2:239831978-240784132', 'chr15:20000000-20894633', 'chr8:145432588-146304022', 'chr15:22646193-23514853', 'chr22:50414777-51244566', 'chrY:9291322-10104553', 'chrX:281384-1047557', 'chrY:1264234-2018238', 'chrX:1314234-2068238', 'chr2:91595103-92326171', 'chr6:170329972-171055067', 'chr9:69328385-70010542', 'chrX:49292997-49974173', 'chr9:43996569-44676646', 'chr22:16050000-16697850', 'chr6:58137659-58780166', 'chr9:43313698-43946569', 'chr17:21666608-22263006', 'chr11:69139801-69724695', 'chr11:51090853-51594205', 'chr9:46561039-47060133', 'chr2:89830436-90321525', 'chr21:10697896-11188129', 'chr9:67516296-67987998', 'chr9:45350203-45815521', 'chr9:40475834-40940341', 'chr15:20935075-21398819', 'chr4:8818203-9274642', 'chr1:149004460-149459645', 'chr9:65467679-65918360', 'chr1:121086695-121485434', 'chrY:58967656-59363566', 'chr13:114739948-115109878', 'chr9:44958293-45250203', 'chr9:68988946-69278385', 'chr10:38868835-39154935', 'chr21:10365976-10647896', 'chr1:145883118-146164650', 'chrY:8964955-9241322', 'chr10:47529169-47792476', 'chr9:39713686-39974796', 'chr1:206072707-206332221', 'chr7:61054331-61310513', 'chr6:61880166-62128589', 'chr1:13319912-13557162', 'chr20:29419569-29653908', 'chr1:143871002-144095783', 'chr9:65968360-66192215', 'chr7:10000-232484', 'chr1:148734147-148954460', 'chr13:114425993-114639948', 'chr10:51187410-51398845', 'chr21:9825437-10034920', 'chr9:40024796-40233029', 'chr1:143342816-143544525', 'chr9:66664195-66863343', 'chr1:142535434-142731022', 'chr9:46266430-46461039', 'chr9:66913343-67107834', 'chr10:42354935-42546687', 'chr7:61727020-61917157', 'chr1:120747156-120936695', 'chr9:70318729-70506535', 'chr1:142781022-142967761', 'chr1:148176038-148361358', 'chr21:9411193-9595548', 'chr9:44726646-44908293', 'chr9:70556535-70735468', 'chr7:142098195-142276197', 'chr1:143117761-143292816', 'chr9:68664181-68838946', 'chr2:90371525-90545103', 'chr1:148511358-148684147', 'chr9:41193214-41365793', 'chr4:49488941-49660117', 'chr1:144451744-144622413', 'chr1:10000-177417', 'chr7:61510465-61677020', 'chr10:47892476-48055707', 'chr9:66242215-66404656', 'chr9:66454656-66614195', 'chr9:67207834-67366296', 'chr9:70060542-70218729', 'chr1:317719-471368', 'chr9:40990341-41143214', 'chr1:143644525-143771002', 'chr1:13102998-13219912', 'chr7:61360513-61460465', 'chrY:58819361-58917656', 'chrY:94821-181384', 'chr9:92443416-92528796', 'chrX:1184113-1264234', 'chrY:1134113-1214234', 'chr1:144145783-144224481', 'chrX:148956424-149032062', 'chr20:61141437-61213369', 'chr1:144672413-144710724', 'chr2:243152476-243189373', 'chrY:1047557-1084113', 'chrX:1097557-1134113', 'chr12:60000-95739', 'chrY:10000-44821', 'chrX:60000-94821'])
Size std dev -- 10452266.0569
---------------------------------------------------
Via randomly shuffled elements -- using 29 of 100 bins ( max_size: 100000000 ):
Bin(size=99993784
    number_of_elements=25
    elements=['chr7:61054331-61310513', 'chr18:72333353-75721820', 'chr2:10000-3529312', 'chr5:17580657-46405641', 'chr21:9411193-9595548', 'chr9:40990341-41143214', 'chr5:49405641-91636128', 'chr1:2684220-3845268', 'chr1:317719-471368', 'chr15:82879645-84984473', 'chr9:68988946-69278385', 'chr1:144145783-144224481', 'chrY:1264234-2018238', 'chr7:61360513-61460465', 'chr8:10000-7474649', 'chr9:45350203-45815521', 'chr8:7524649-12091854', 'chr6:170329972-171055067', 'chr10:133727527-135524747', 'chr2:91595103-92326171', 'chr21:9645548-9775437', 'chr1:149004460-149459645', 'chr9:70556535-70735468', 'chrX:60000-94821', 'chr10:133431404-133677527'])
Bin(size=99987054
    number_of_elements=4
    elements=['chr11:1212759-50783853', 'chr12:7239876-34856694', 'chr9:70835468-92343416', 'chr19:7396004-8687198'])
Bin(size=99987685
    number_of_elements=14
    elements=['chr13:86910324-112353994', 'chr16:8686921-34023150', 'chrX:61682012-76653692', 'chr17:396626-21566608', 'chr6:58137659-58780166', 'chr22:16847850-20509431', 'chr12:132806992-133841895', 'chr4:52660117-59739333', 'chr9:45865521-46216430', 'chr1:13102998-13219912', 'chrY:94821-181384', 'chr1:146214650-146253299', 'chr1:144672413-144710724', 'chrM:0-16571'])
Bin(size=99998571
    number_of_elements=14
    elements=['chr11:96437584-134946516', 'chr8:48135599-86576451', 'chrX:113567668-115682290', 'chrX:7673882-10738674', 'chr1:144810724-145833118', 'chr2:87718206-89630436', 'chr1:121086695-121485434', 'chr8:142816515-145332588', 'chr7:130254523-139379377', 'chr11:60000-1162759', 'chr9:70318729-70506535', 'chr4:10000-1423146', 'chr9:66454656-66614195', 'chr6:157609467-157641300'])
Bin(size=99999294
    number_of_elements=9
    elements=['chr5:155188727-180905260', 'chr18:10000-15410898', 'chr8:12141854-43838887', 'chr19:60000-7346004', 'chr1:13607162-17125658', 'chr2:95326171-110109337', 'chrY:231384-997557', 'chrY:13193954-13748578', 'chrY:8964955-9241322'])
Bin(size=99970266
    number_of_elements=5
    elements=['chr9:10000-39663686', 'chr6:62178589-95680543', 'chr20:34947085-61091437', 'chr11:69139801-69724695', 'chr9:92443416-92528796'])
Bin(size=99993301
    number_of_elements=7
    elements=['chr22:20609431-50364777', 'chr4:40297096-49338941', 'chr9:92678796-133073060', 'chr1:103913906-120697156', 'chr21:44682664-48119895', 'chr10:51187410-51398845', 'chr13:114739948-115109878'])
Bin(size=99986506
    number_of_elements=24
    elements=['chr20:61263369-62965520', 'chr9:41415793-42613955', 'chr17:77596461-79709049', 'chrY:22419679-23901428', 'chr2:21178113-87668206', 'chr10:128766069-133381404', 'chrX:115732290-120013235', 'chr18:75771820-78017248', 'chr1:206072707-206332221', 'chr1:143342816-143544525', 'chr9:46266430-46461039', 'chr22:50414777-51244566', 'chr21:10365976-10647896', 'chr1:143644525-143771002', 'chr9:44726646-44908293', 'chr4:8818203-9274642', 'chr2:234053741-239801978', 'chr10:42596687-46426964', 'chr9:66913343-67107834', 'chr2:89830436-90321525', 'chr13:112503994-114325993', 'chr1:144274481-144401744', 'chr2:239831978-240784132', 'chr9:66242215-66404656'])
Bin(size=99998475
    number_of_elements=9
    elements=['chr5:91686128-138787073', 'chr7:282484-50370631', 'chr8:46838887-48130499', 'chr21:10697896-11188129', 'chr15:21885000-22212114', 'chr9:42663955-43213698', 'chr12:60000-95739', 'chrX:1184113-1264234', 'chrY:10000-44821'])
Bin(size=99979640
    number_of_elements=23
    elements=['chr6:60000-58087659', 'chr5:138837073-155138727', 'chrY:23951428-28819361', 'chr15:23564853-29159443', 'chr4:32840638-40296396', 'chr1:148176038-148361358', 'chr6:61880166-62128589', 'chr10:125919472-128616069', 'chr9:44958293-45250203', 'chr1:148734147-148954460', 'chr10:47892476-48055707', 'chr7:10000-232484', 'chr9:66664195-66863343', 'chr1:144451744-144622413', 'chr1:13319912-13557162', 'chrY:9291322-10104553', 'chr9:39713686-39974796', 'chr10:47529169-47792476', 'chr1:148511358-148684147', 'chr11:51090853-51594205', 'chr8:145432588-146304022', 'chr4:49488941-49660117', 'chr1:227417-267719'])
Bin(size=99979205
    number_of_elements=22
    elements=['chrX:10788674-37098256', 'chr4:9324642-31820917', 'chrX:143557324-148906424', 'chr1:235242211-248908210', 'chr5:10000-17530657', 'chrY:2068238-8914955', 'chrX:149082062-152277099', 'chr15:22262114-22596193', 'chr1:143117761-143292816', 'chr9:40283029-40425834', 'chr13:114425993-114639948', 'chr9:40024796-40233029', 'chr9:68664181-68838946', 'chr21:43005559-44632664', 'chr9:65968360-66192215', 'chr1:120747156-120936695', 'chr9:43996569-44676646', 'chr1:249058210-249240621', 'chrX:148956424-149032062', 'chr2:90371525-90545103', 'chr9:70060542-70218729', 'chrY:1047557-1084113'])
Bin(size=99963835
    number_of_elements=12
    elements=['chr2:149790582-234003741', 'chr4:1478646-8799203', 'chr2:3579312-5018788', 'chr16:34173150-35285801', 'chrX:281384-1047557', 'chr2:240809132-243102476', 'chr10:46476964-47429169', 'chr9:43313698-43946569', 'chrX:1314234-2068238', 'chr1:145883118-146164650', 'chr9:67207834-67366296', 'chrY:13104553-13143954'])
Bin(size=99998582
    number_of_elements=6
    elements=['chr8:86726451-142766515', 'chr7:74765724-100556043', 'chr11:69774695-87688378', 'chr21:10084920-10215976', 'chrX:144821-231384', 'chr2:243152476-243189373'])
Bin(size=99985354
    number_of_elements=8
    elements=['chr14:19000000-107289540', 'chrX:2118238-7623882', 'chr19:20573415-24631782', 'chr15:22646193-23514853', 'chr9:46561039-47060133', 'chrY:58967656-59363566', 'chr7:142098195-142276197', 'chr7:61727020-61917157'])
Bin(size=99987888
    number_of_elements=11
    elements=['chr13:19020000-86760324', 'chrX:120063235-143507324', 'chr4:31837417-32834638', 'chr7:142326197-143347897', 'chr9:40475834-40940341', 'chr9:139216997-141153431', 'chr9:69328385-70010542', 'chr9:137091193-139166997', 'chrX:49292997-49974173', 'chr22:16050000-16697850', 'chr17:0-296626'])
Bin(size=115591997
    number_of_elements=1
    elements=['chr4:75452279-191044276'])
Bin(size=99973866
    number_of_elements=9
    elements=['chr6:95830543-157559467', 'chrX:37148256-49242997', 'chr7:61967157-74715724', 'chr6:157691300-167942073', 'chrY:20193885-22369679', 'chr9:65467679-65918360', 'chr10:42354935-42546687', 'chr20:29419569-29653908', 'chrY:58819361-58917656'])
Bin(size=99976924
    number_of_elements=8
    elements=['chr3:60000-66170270', 'chr7:100606043-130154523', 'chrX:50024173-52395914', 'chr10:48105707-49095536', 'chr15:20935075-21398819', 'chrY:1134113-1214234', 'chr9:68137998-68514181', 'chrX:1097557-1134113'])
Bin(size=99992968
    number_of_elements=9
    elements=['chr2:110251337-149690582', 'chr17:34725848-62410760', 'chr10:18024675-38818835', 'chr7:143397897-154270634', 'chr17:21666608-22263006', 'chr7:61510465-61677020', 'chr20:61141437-61213369', 'chr9:47160133-47317679', 'chr21:9825437-10034920'])
Bin(size=99967830
    number_of_elements=12
    elements=['chr18:52209136-72283353', 'chr17:62460760-77546461', 'chr4:59789333-75427379', 'chr11:87738378-96287584', 'chr7:154370634-159128663', 'chr12:109423470-122530623', 'chr20:29803908-34897085', 'chr19:8737198-20523415', 'chr7:139404377-142048195', 'chr1:521368-2634220', 'chr15:20000000-20894633', 'chr1:143871002-144095783'])
Bin(size=100537107
    number_of_elements=1
    elements=['chr3:93504854-194041961'])
Bin(size=99876282
    number_of_elements=6
    elements=['chr16:46385801-88389383', 'chr20:60000-26319569', 'chr21:14338129-42955559', 'chr6:168042073-170279972', 'chr9:67516296-67987998', 'chr10:38868835-39154935'])
Bin(size=99868816
    number_of_elements=5
    elements=['chr1:149509645-205922707', 'chr3:66270270-90504854', 'chr9:133223060-137041193', 'chrY:13798578-20143885', 'chr1:3995268-13052998'])
Bin(size=99856578
    number_of_elements=11
    elements=['chr19:27731782-59118983', 'chr15:85034473-102521392', 'chr1:223797846-235192211', 'chr3:194047251-197962430', 'chrX:152327099-155260560', 'chrX:52445914-58582012', 'chr16:60000-8636921', 'chr2:5118788-16279724', 'chr2:16329724-21153113', 'chr16:88439383-90294753', 'chr1:142781022-142967761'])
Bin(size=99867525
    number_of_elements=6
    elements=['chr10:51448845-125869472', 'chr7:50410631-58054331', 'chr1:17175658-29878082', 'chr10:49195536-51137410', 'chr17:79759049-81195210', 'chr1:146303299-148026038'])
Bin(size=99444354
    number_of_elements=6
    elements=['chr12:37856694-109373470', 'chr1:206482221-223747846', 'chr12:122580623-132706992', 'chr9:41193214-41365793', 'chr1:10000-177417', 'chr1:142535434-142731022'])
Bin(size=96581282
    number_of_elements=3
    elements=['chr15:29209443-82829645', 'chr18:18510898-52059136', 'chr17:25263006-34675848'])
Bin(size=95275557
    number_of_elements=3
    elements=['chr1:30028082-103863906', 'chr11:54694205-69089801', 'chr12:145739-7189876'])
Bin(size=54728651
    number_of_elements=2
    elements=['chrX:76703692-113517668', 'chr10:60000-17974675'])
Size std dev -- 8858610.15754

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment