diff --git a/src/utils/FileRecordTools/Records/BedPlusInterval.cpp b/src/utils/FileRecordTools/Records/BedPlusInterval.cpp index afc60113839f735fe6afdcf2f972fffa98227b2e..da6ae96dfc85b79c4c40bcd0d65973beaf745b28 100644 --- a/src/utils/FileRecordTools/Records/BedPlusInterval.cpp +++ b/src/utils/FileRecordTools/Records/BedPlusInterval.cpp @@ -70,6 +70,13 @@ const QuickString &BedPlusInterval::getField(int fieldNum) const { if (fieldNum > _numFixedFields) { return _plusFields.getField(fieldNum); + } else if (fieldNum == 4 && _numFixedFields >=4) { + return _name; + } else if (fieldNum == 5 && _numFixedFields >=5) { + return _score; + } + else if (fieldNum == 6 && _numFixedFields >=6) { + return _strand; } return Bed3Interval::getField(fieldNum); } diff --git a/src/utils/FileRecordTools/Records/VcfRecord.h b/src/utils/FileRecordTools/Records/VcfRecord.h index 012cd8becde71695726e670f8ebbb59a917997a1..3f2df548793859da2cb3178c776d806242f9601f 100644 --- a/src/utils/FileRecordTools/Records/VcfRecord.h +++ b/src/utils/FileRecordTools/Records/VcfRecord.h @@ -31,6 +31,7 @@ public: protected: QuickString _varRef; QuickString _varAlt; + static const int numFixedFields = 6; void printOtherFields(QuickString &outBuf) const; }; diff --git a/test/map/bug262_a.bed b/test/map/bug262_a.bed new file mode 100644 index 0000000000000000000000000000000000000000..daa8a064767f881ba6274ce475d9a1fe5bbfba53 --- /dev/null +++ b/test/map/bug262_a.bed @@ -0,0 +1,2 @@ +1 3215742 3216021 . 0 - +1 3217007 3218115 . 0 - diff --git a/test/map/bug262_b.bed b/test/map/bug262_b.bed new file mode 100644 index 0000000000000000000000000000000000000000..7a1b4d1a00a22aaa5ddc2289ea0fabfc60c35659 --- /dev/null +++ b/test/map/bug262_b.bed @@ -0,0 +1,2 @@ +1 3215742 3216021 . 1 - 0 0 3 +1 3217007 3218115 . 1 - 0 0 1 diff --git a/test/map/test-map.sh b/test/map/test-map.sh index 33657d80f64a777d17583f4c8dc5e96fee6300f4..c1617cf4f4ca518f3227f837e1fd9cb8cf1211c6 100644 --- a/test/map/test-map.sh +++ b/test/map/test-map.sh @@ -808,3 +808,32 @@ chr1 15000 20000 11.44444444" > exp $BT map -a d.bed -b fullFields.bam -c 5 -o mean > obs check exp obs rm exp obs + + +########################################################### +# Bug 262: Test stranded map with BedPlus records. +# -s (lowercase) should give results +############################################################ +echo " map.t54...\c" +echo \ +"1 3215742 3216021 . 0 - 1 +1 3217007 3218115 . 0 - 1" > exp +$BT map -a bug262_a.bed -b bug262_b.bed -s > obs +check exp obs +rm exp obs + + +########################################################### +# Bug 262: Test stranded map with BedPlus records. +# -S (uppercase) should NOT give results +############################################################ +echo " map.t55...\c" +echo \ +"1 3215742 3216021 . 0 - . +1 3217007 3218115 . 0 - ." > exp +$BT map -a bug262_a.bed -b bug262_b.bed -S > obs +check exp obs +rm exp obs + + +