diff --git a/src/closestBed/closestBed.cpp b/src/closestBed/closestBed.cpp index 12279c3922643cee83fa082ccdd564881debafa3..673028aa964f0cfcfe662ba3a8b7d435803240af 100644 --- a/src/closestBed/closestBed.cpp +++ b/src/closestBed/closestBed.cpp @@ -126,6 +126,7 @@ void BedClosest::FindWindowOverlaps(BED &a, vector<BED> &hits) { closestB.clear(); distances.clear(); } + minDistance = 0; closestB.push_back(*h); distances.push_back(0); } diff --git a/test/closest/close-a.bed b/test/closest/close-a.bed new file mode 100644 index 0000000000000000000000000000000000000000..ad2095e3f79b4b6b2c7d65fb6f733f79c4bb6b91 --- /dev/null +++ b/test/closest/close-a.bed @@ -0,0 +1,8 @@ +track name="Test Bed" maxheightpixels=120:120 +chr1 100 101 +chr1 200 201 +chr1 300 301 +chr1 100000 100010 +chr1 100020 100040 +chr2 1 10 +chr2 20 30 diff --git a/test/closest/close-b.bed b/test/closest/close-b.bed new file mode 100644 index 0000000000000000000000000000000000000000..65b4e0045635456515294717da60ccb364050473 --- /dev/null +++ b/test/closest/close-b.bed @@ -0,0 +1,7 @@ +track name="Test Bed 2" maxheightpixels=120:120 +chr1 100 101 +chr1 150 201 +chr1 175 375 +chr3 20 30 +chr7 55209979 55210130 +chr7 55210220 55210688 diff --git a/test/closest/test-closest.sh b/test/closest/test-closest.sh index 58269cf86010e7c7bbda161cb404b0648d9d5215..7a0ded2db6349cda7d737ea90aa264372c5f111f 100644 --- a/test/closest/test-closest.sh +++ b/test/closest/test-closest.sh @@ -101,3 +101,69 @@ echo \ $BT closest -a strand-test-a.bed -b strand-test-b.bed -S > obs check obs exp rm obs exp + + +########################################################### +# test reproting of all overlapping features +########################################################### +echo " closest.t9...\c" +echo \ +"chr1 100 101 chr1 100 101 +chr1 200 201 chr1 150 201 +chr1 200 201 chr1 175 375 +chr1 300 301 chr1 175 375 +chr1 100000 100010 chr1 175 375 +chr1 100020 100040 chr1 175 375 +chr2 1 10 . -1 -1 +chr2 20 30 . -1 -1" > exp +$BT closest -a close-a.bed -b close-b.bed > obs +check obs exp +rm obs exp + +########################################################### +# test reproting of first overlapping feature +########################################################### +echo " closest.t10...\c" +echo \ +"chr1 100 101 chr1 100 101 +chr1 200 201 chr1 150 201 +chr1 300 301 chr1 175 375 +chr1 100000 100010 chr1 175 375 +chr1 100020 100040 chr1 175 375 +chr2 1 10 . -1 -1 +chr2 20 30 . -1 -1" > exp +$BT closest -a close-a.bed -b close-b.bed -t first > obs +check obs exp +rm obs exp + +########################################################### +# test reproting of last overlapping feature +########################################################### +echo " closest.t11...\c" +echo \ +"chr1 100 101 chr1 100 101 +chr1 200 201 chr1 175 375 +chr1 300 301 chr1 175 375 +chr1 100000 100010 chr1 175 375 +chr1 100020 100040 chr1 175 375 +chr2 1 10 . -1 -1 +chr2 20 30 . -1 -1" > exp +$BT closest -a close-a.bed -b close-b.bed -t last > obs +check obs exp +rm obs exp + +########################################################### +# test reproting of no overlapping feature +########################################################### +echo " closest.t12...\c" +echo \ +"chr1 100 101 chr1 150 201 +chr1 200 201 chr1 100 101 +chr1 300 301 chr1 150 201 +chr1 100000 100010 chr1 175 375 +chr1 100020 100040 chr1 175 375 +chr2 1 10 . -1 -1 +chr2 20 30 . -1 -1" > exp +$BT closest -a close-a.bed -b close-b.bed -io > obs +check obs exp +rm obs exp