-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
Description
On large (1M ranges) datasets, bedtools map is beating GRanges. It look like it comes down to numerics:
# using inline:
command bedtools time granges time granges speedup (%)
------------ --------------- -------------- ---------------------
map_multiple 26.89 min 688.60 s 57.3189
map_max 21.34 min 21.54 min -0.94889
adjust 21.35 min 499.54 s 60.9959
filter 27.01 min 20.38 min 24.5583
map_min 935.69 s 17.48 min -12.1008
flank 30.26 min 943.36 s 48.0353
map_mean 20.13 min 931.21 s 22.913
map_sum 17.99 min 18.44 min -2.5225
windows 507.84 s 84.79 s 83.304
map_median 16.90 min 17.81 min -5.36811
# not using inline
command bedtools time granges time granges speedup (%)
------------ --------------- -------------- ---------------------
map_multiple 26.89 min 688.60 s 57.3189
map_max 21.34 min 21.54 min -0.94889
adjust 21.35 min 499.54 s 60.9959
filter 27.01 min 20.38 min 24.5583
map_min 935.69 s 17.48 min -12.1008
flank 30.26 min 943.36 s 48.0353
map_mean 20.13 min 931.21 s 22.913
map_sum 17.99 min 18.44 min -2.5225
windows 507.84 s 84.79 s 83.304
map_median 16.90 min 17.81 min -5.36811
where inline here refers to #[inline(always)] above the Operations::run() (suggested by @molpopgen).