From effc83ef8ff4b7c92116cada6c965089d0fce15a Mon Sep 17 00:00:00 2001 From: Neil Kindlon <nek3d@d-128-109-67.bootp.Virginia.EDU> Date: Mon, 22 Dec 2014 19:46:14 -0500 Subject: [PATCH] Fixed bug157: ties not prevented by -iu/-id --- src/utils/NewChromsweep/CloseSweep.cpp | 2 +- test/closest/bug157_a.bed | 1 + test/closest/bug157_b.bed | 2 ++ test/closest/test-closest.sh | 31 ++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test/closest/bug157_a.bed create mode 100644 test/closest/bug157_b.bed diff --git a/src/utils/NewChromsweep/CloseSweep.cpp b/src/utils/NewChromsweep/CloseSweep.cpp index 8b897252..e1bb957e 100644 --- a/src/utils/NewChromsweep/CloseSweep.cpp +++ b/src/utils/NewChromsweep/CloseSweep.cpp @@ -331,7 +331,7 @@ void CloseSweep::finalizeSelections(int dbIdx, RecordKeyVector &retList) { } - if (downStreamDist == upStreamDist) { + if (abs(downStreamDist) == abs(upStreamDist)) { if (tieMode == ContextClosest::FIRST_TIE) { retList.push_back(upRecs[0]); _finalDistances.push_back(upStreamDist); diff --git a/test/closest/bug157_a.bed b/test/closest/bug157_a.bed new file mode 100644 index 00000000..b01a1b8f --- /dev/null +++ b/test/closest/bug157_a.bed @@ -0,0 +1 @@ +chr1 10 20 a1 1 - diff --git a/test/closest/bug157_b.bed b/test/closest/bug157_b.bed new file mode 100644 index 00000000..0d9ecf25 --- /dev/null +++ b/test/closest/bug157_b.bed @@ -0,0 +1,2 @@ +chr1 8 9 b1 1 + +chr1 21 22 b2 1 - diff --git a/test/closest/test-closest.sh b/test/closest/test-closest.sh index 149054b7..56ce229b 100644 --- a/test/closest/test-closest.sh +++ b/test/closest/test-closest.sh @@ -599,6 +599,37 @@ $BT closest -a d.bed -b d_id.bed -D ref -id > obs check exp obs rm exp obs +########################################################## +# check ties, single db +########################################################### +echo " closest.t52...\c" +echo \ +"chr1 10 20 a1 1 - chr1 8 9 b1 1 + +chr1 10 20 a1 1 - chr1 21 22 b2 1 -" > exp +$BT closest -a bug157_a.bed -b bug157_b.bed > obs +check exp obs +rm exp obs + + +########################################################## +# check ties, single db, -iu +########################################################### +echo " closest.t53...\c" +echo \ +"chr1 10 20 a1 1 - chr1 21 22 b2 1 - 2" > exp +$BT closest -a bug157_a.bed -b bug157_b.bed -D ref -iu > obs +check exp obs +rm exp obs + +########################################################## +# check ties, single db, -id +########################################################### +echo " closest.t54...\c" +echo \ +"chr1 10 20 a1 1 - chr1 8 9 b1 1 + -2" > exp +$BT closest -a bug157_a.bed -b bug157_b.bed -D ref -id > obs +check exp obs +rm exp obs cd sortAndNaming bash test-sort-and-naming.sh -- GitLab