                      if (0 == addFrontClipping) {
 diff -rupN -x Xcode -x .git tmp/snap/SNAPLib/SAM.cpp snap/SNAPLib/SAM.cpp
 --- tmp/snap/SNAPLib/SAM.cpp	2015-07-28 15:15:02.000000000 -0400
-+++ snap/SNAPLib/SAM.cpp	2015-08-04 10:46:28.000000000 -0400
++++ snap/SNAPLib/SAM.cpp	2015-08-05 11:25:54.000000000 -0400
 @@ -1123,6 +1123,7 @@ SAMFormat::writeRead(
      Read * read,
      AlignmentResult result, 

         bool alignedAsPair = false) const = 0; 
diff -rupN -x Xcode -x .git tmp/snap/SNAPLib/IntersectingPairedEndAligner.cpp snap/SNAPLib/IntersectingPairedEndAligner.cpp
--- tmp/snap/SNAPLib/IntersectingPairedEndAligner.cpp	2015-07-28 15:15:02.000000000 -0400
+++ snap/SNAPLib/IntersectingPairedEndAligner.cpp	2015-08-04 17:31:35.000000000 -0400
@@ -855,6 +855,11 @@ doneScoring:
         for (unsigned whichRead = 0; whichRead < NUM_READS_PER_PAIR; whichRead++) {
             result->location[whichRead] = bestResultGenomeLocation[whichRead];
             result->direction[whichRead] = bestResultDirection[whichRead];
+			result->features[whichRead].init(bestResultScore[whichRead],
+											 0xffff,
+											 probabilityOfAllPairs,
+											 probabilityOfBestPair,
+											 popularSeedsSkipped[0] + popularSeedsSkipped[1]);
             result->mapq[whichRead] = computeMAPQ(probabilityOfAllPairs, probabilityOfBestPair, bestResultScore[whichRead], popularSeedsSkipped[0] + popularSeedsSkipped[1]);
             result->status[whichRead] = result->mapq[whichRead] > MAPQ_LIMIT_FOR_SINGLE_HIT ? SingleHit : MultipleHits;
             result->score[whichRead] = bestResultScore[whichRead];

         *spaceUsed = bamSize;
diff -rupN -x Xcode -x .git tmp/snap/SNAPLib/BaseAligner.cpp snap/SNAPLib/BaseAligner.cpp
--- tmp/snap/SNAPLib/BaseAligner.cpp	2015-07-28 15:15:02.000000000 -0400
+++ snap/SNAPLib/BaseAligner.cpp	2015-08-05 11:13:27.000000000 -0400
@@ -289,7 +289,7 @@ Return Value:
     primaryResult->score = UnusedScoreValue;
     primaryResult->status = NotFound;
 
-    unsigned lookupsThisRun = 0;
+    lookupsThisRun = hitsThisRun = 0;
 
     popularSeedsSkipped = 0;
 
@@ -471,6 +471,7 @@ Return Value:
 
         nHashTableLookups++;
         lookupsThisRun++;
+        hitsThisRun += (nHits[FORWARD] + nHits[RC]);
 
 
 #ifdef  _DEBUG
@@ -764,6 +765,17 @@ Return Value:
                 primaryResult->score = bestScore;
                 if (bestScore <= maxK) {
                     primaryResult->location = bestScoreGenomeLocation;
+					float hitsPerLookup = (float)hitsThisRun / lookupsThisRun;
+					primaryResult->features.init(bestScore,
+												 secondBestScore,
+												 probabilityOfAllCandidates,
+												 probabilityOfBestCandidate,
+												 popularSeedsSkipped,
+												 0,
+												 lookupsThisRun,
+												 0,
+												 hitsPerLookup,
+												 0);
                     primaryResult->mapq = computeMAPQ(probabilityOfAllCandidates, probabilityOfBestCandidate, bestScore, popularSeedsSkipped);
                     if (primaryResult->mapq >= MAPQ_LIMIT_FOR_SINGLE_HIT) {
                         primaryResult->status = SingleHit;
diff -rupN -x Xcode -x .git tmp/snap/SNAPLib/BaseAligner.h snap/SNAPLib/BaseAligner.h
--- tmp/snap/SNAPLib/BaseAligner.h	2015-07-28 15:15:02.000000000 -0400
+++ snap/SNAPLib/BaseAligner.h	2015-08-05 11:12:27.000000000 -0400
@@ -136,6 +136,9 @@ private:
     _int64 nReadsIgnoredBecauseOfTooManyNs;
     _int64 nIndelsMerged;
 
+	unsigned lookupsThisRun;
+	_int64 hitsThisRun;
+
     //
     // A bitvector indexed by offset in the read indicating whether this seed is used.
     // This is here to avoid doing a memory allocation in the aligner.
diff -rupN -x Xcode -x .git tmp/snap/SNAPLib/ChimericPairedEndAligner.cpp snap/SNAPLib/ChimericPairedEndAligner.cpp
--- tmp/snap/SNAPLib/ChimericPairedEndAligner.cpp	2015-07-28 15:15:02.000000000 -0400
+++ snap/SNAPLib/ChimericPairedEndAligner.cpp	2015-08-05 09:03:57.000000000 -0400
