From 8085e45a67a2969217f49b4db319a6a5da60f636 Mon Sep 17 00:00:00 2001
From: nkindlon <nek3d@virginia.edu>
Date: Fri, 11 Oct 2013 07:42:20 -0400
Subject: [PATCH] Stopped BinTree from loading or getting hits for unmapped
 reads.

---
 src/utils/BinTree/BinTree.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/utils/BinTree/BinTree.cpp b/src/utils/BinTree/BinTree.cpp
index 12da7a1e..d01749fa 100644
--- a/src/utils/BinTree/BinTree.cpp
+++ b/src/utils/BinTree/BinTree.cpp
@@ -85,7 +85,8 @@ bool BinTree::loadDB()
 	Record *record = NULL;
 	while (!_dbFileMgr->eof()) {
 		record = _dbFileMgr->allocateAndGetNextRecord();
-		if (record == NULL) {
+		//In addition to NULL records, we also don't want to add unmapped reads.
+		if (record == NULL || record->isUnmapped()) {
 			continue;
 		}
 
@@ -111,7 +112,9 @@ void BinTree::getHits(Record *record, RecordKeyList &hitSet)
 	if (_showBinMetrics) {
 		return; //don't care about query entries just yet.
 	}
-
+	if (record->isUnmapped()) {
+		return;
+	}
     const QuickString &chr = record->getChrName();
 	mainMapType::iterator mainIter = _mainMap.find(chr);
 	if (mainIter == _mainMap.end()) {
@@ -169,7 +172,7 @@ void BinTree::getHits(Record *record, RecordKeyList &hitSet)
 
 bool BinTree::addRecordToTree(const Record *record)
 {
-	//TBD. get chr, bin. allocate all bins and single bins as needed.
+	// Get chr, bin. allocate all bins and single bins as needed.
 	const QuickString &chr = record->getChrName();
 	uint32_t startPos = (uint32_t)(record->getStartPos());
 	uint32_t endPos = (uint32_t)(record->getEndPos());
-- 
GitLab